无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 17763|回复: 95
打印 上一主题 下一主题

[求助] 请大家帮忙写个批处理

  [复制链接]
跳转到指定楼层
1#
发表于 2020-11-25 11:21:05 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 2013koko 于 2020-11-29 21:01 编辑

请大家帮忙写个批处理,谢谢!

原来的2迟迟不能解决,放弃了,换一个:

A、B两个.txt文件,都是简短的文本行。
1、请对比A、B两个文件,输出两文件都有的相同行到C文件。
2、请对比A、B两个文件,输出两文件的差异行 A-B=D文件。


2#
 楼主| 发表于 2020-11-25 14:09:13 | 显示全部楼层
本帖最后由 2013koko 于 2020-11-29 17:27 编辑

1、创建目录文件列表并构建成空文件(由 junyee 坛友提供)

@echo off
pushd %~dp0
rem 先输出文件和目录列表,如:
set srcDir=D:\winpe\wepe\CGI
set outDir=.\Build
dir /s /b /ad  "%srcDir%\" >pe_folder.list
dir /s /b /a-d "%srcDir%\" >pe_file.list
:Build
dir *.list
for /f "delims=" %%i in (pe_folder.list) do mkdir "%outDir%\%%~pnxi"
for /f "delims=" %%i in (pe_file.list) do (
mkdir "%outDir%\%%~pi" 2>NUL
copy nul "%outDir%\%%~pnxi" /y
)
del /q pe_folder.list
del /q pe_file.list
exit

2、对比A、B两个目录,删除B目录下文件名在A目录中找不到对应的文件(由 junyee 坛友提供)

@echo off
set muiDir=D:\winpe\wepe\CGI\Windows\System32\zh-CN
set sysDir=D:\winpe\wepe\CGI\Windows\System32

for /f "delims=" %%i in ('dir /s /b %muiDir%\*.*') do (
if not exist "%sysDir%\%%~ni" del /f /q "%%i"
)

exit


回复

使用道具 举报

3#
 楼主| 发表于 2020-11-25 17:11:41 | 显示全部楼层
cchessbd 发表于 2020-11-25 14:19
如果是一键网络pe,见原帖2楼,已经弄成了一键批处理。

不是处理wim,单纯的bat
回复

使用道具 举报

4#
 楼主| 发表于 2020-11-25 17:13:07 | 显示全部楼层
junyee 发表于 2020-11-25 16:18
看来好像都是在玩 sairen 的PE啊.

谢谢,这个是第一个的吧?我试试

点评

第二个好像有第三方命令比较两个文本区别的. 不过并不能 区分父目录与子文件~~ 第三个问题有点绕,有时间再琢磨你说的是什么. ~~~~ 我现在已经变成单纯的伸手党了,如果有好的作品分享我一份哪~  详情 回复 发表于 2020-11-25 17:17
回复

使用道具 举报

5#
 楼主| 发表于 2020-11-25 17:17:26 | 显示全部楼层
本帖最后由 2013koko 于 2020-11-25 17:27 编辑
窄口牛 发表于 2020-11-25 15:42
也不发一个文本样品上来,按照描述好像有带点的目录,但不在最后一层?

就是Windows\WinSxS\amd64_microsoft.windows.*这样的,是目录不是文件
回复

使用道具 举报

6#
 楼主| 发表于 2020-11-25 17:21:54 | 显示全部楼层
junyee 发表于 2020-11-25 17:17
第二个好像有第三方命令比较两个文本区别的.
不过并不能 区分父目录与子文件~~

我这正在当伸手党呢
回复

使用道具 举报

7#
 楼主| 发表于 2020-11-25 17:26:22 | 显示全部楼层
junyee 发表于 2020-11-25 17:17
第二个好像有第三方命令比较两个文本区别的.
不过并不能 区分父目录与子文件~~

第三个问题其实就是处理Windows\System32\zh-CN下的.mui文件,想偷懒直接提取所有.mui,然后比较Windows\System32下的文件,删除多余的.mui

点评

还是没明白. zh\zh-CN\a.mui 然后去 system32下找是否包含 文件a 吗? 没有的话删除 a.mui ?  详情 回复 发表于 2020-11-25 17:35
还是没明白. zh\zh-CN\a.mui 然后去 system32下找是否包含 文件a 吗? 没有的话删除 a.mui ?  详情 回复 发表于 2020-11-25 17:35
回复

使用道具 举报

8#
 楼主| 发表于 2020-11-25 17:40:22 | 显示全部楼层
junyee 发表于 2020-11-25 17:35
还是没明白.

zh\zh-CN\a.mui

是的
回复

使用道具 举报

9#
 楼主| 发表于 2020-11-25 17:44:02 | 显示全部楼层
junyee 发表于 2020-11-25 17:35
还是没明白.

zh\zh-CN\a.mui

比如Windows\System32\zh-CN下有个cmd.exe.mui的文件,就去Windows\System32下查找是否存在cmd.exe文件,如果没有cmd.exe,就删除cmd.exe.mui
回复

使用道具 举报

10#
 楼主| 发表于 2020-11-25 17:55:52 | 显示全部楼层
junyee 发表于 2020-11-25 16:18
看来好像都是在玩 sairen 的PE啊.

这个批处理把文件生成文件夹了,请帮忙修改一下,谢谢!

sshot-1.png (13.68 KB, 下载次数: 107)

sshot-1.png

点评

搞反了,已修正。  发表于 2020-11-25 19:03
回复

使用道具 举报

11#
 楼主| 发表于 2020-11-25 19:23:34 | 显示全部楼层

谢谢,我试试。
回复

使用道具 举报

12#
 楼主| 发表于 2020-11-25 19:41:28 | 显示全部楼层
江南一根葱 发表于 2020-11-25 14:19
估计现在是休息时间段,还有一个就是个人觉得作业不适合一次性布置太多。。。。。
还有一个就是2#。。。

大佬这会儿有时间了吗?该做作业了吧
回复

使用道具 举报

13#
 楼主| 发表于 2020-11-25 19:55:14 | 显示全部楼层

大神也出马了,谢谢!现在在路上,一会就试
回复

使用道具 举报

14#
 楼主| 发表于 2020-11-25 21:10:41 | 显示全部楼层
本帖最后由 2013koko 于 2020-11-25 21:11 编辑

大神,实测基本已达成效果,还有两个小问题盼解决:
1、在处理目录路径中带空格的目录如 Program Files 目录时出现异常,创建成了 Program 并且非常奇怪地去处理了实际存在的带空格的目录(请看截图中带空格目录的修改时间)!
2、INetCache、INetCookies 两个目录未能创建(这两个目录在 BCompare 中多显示了“(s)” 字样),实际目录中没有。

主要是解决第一个问题,第二个不行就手动,感谢!

sshot-1.png (29.29 KB, 下载次数: 108)

sshot-1.png

sshot-2.png (2.16 KB, 下载次数: 111)

sshot-2.png
回复

使用道具 举报

15#
 楼主| 发表于 2020-11-25 21:42:06 | 显示全部楼层

这个还是不对,没有效果,显示删除的是一些完全不存在的.mui文件?请再琢磨琢磨,很奇怪

sshot-1.png (186.34 KB, 下载次数: 106)

sshot-1.png
回复

使用道具 举报

16#
 楼主| 发表于 2020-11-25 23:59:44 | 显示全部楼层
窄口牛 发表于 2020-11-25 22:40
有空格就难度大了,我也玩不了。

想到个折衷的办法:先把目录中的空格删掉,生成后再改一下就可以了。
再次感谢!

点评

我写的你没试吗,应该是有用的  详情 回复 发表于 2020-11-26 07:47
回复

使用道具 举报

17#
 楼主| 发表于 2020-11-26 09:47:32 | 显示全部楼层
junyee 发表于 2020-11-26 07:47
我写的你没试吗,应该是有用的

试过了的,可能您没有看到回复

sshot-1.png (186.34 KB, 下载次数: 142)

sshot-1.png
回复

使用道具 举报

18#
 楼主| 发表于 2020-11-26 09:50:34 | 显示全部楼层
junyee 发表于 2020-11-26 07:47
我写的你没试吗,应该是有用的

显示删除的是一些完全不存在的.mui文件,很奇怪,我的zh-cn下没有这些显示删除的.mui文件,难道强制读取的C:\windows下的?

点评

QQ私信我吧,论坛这样交流太慢了。  详情 回复 发表于 2020-11-26 09:52
回复

使用道具 举报

19#
 楼主| 发表于 2020-11-26 09:57:55 | 显示全部楼层
junyee 发表于 2020-11-26 09:52
QQ私信我吧,论坛这样交流太慢了。

已将我的QQ号发给您了
回复

使用道具 举报

20#
 楼主| 发表于 2020-11-26 13:30:05 | 显示全部楼层

感谢大侠精益求精,除了2个目录未知原因不能创建,其余完全正确,完美!

sshot-2.png (64.62 KB, 下载次数: 110)

sshot-2.png
回复

使用道具 举报

21#
 楼主| 发表于 2020-11-26 13:53:32 | 显示全部楼层

这个批处理也很好,但是由于无法准确判断路径的底端是目录还是文件,还有些瑕疵。而窄大的批处理是有去实际路径中去检查的动作,因此能够准确创建。
回复

使用道具 举报

22#
 楼主| 发表于 2020-11-26 14:06:22 | 显示全部楼层

把文件列表的创建(目录列表和文件列表)和文件构建放在一个批处理里,问题就可以解决!
期待大神完成!
回复

使用道具 举报

23#
 楼主| 发表于 2020-11-26 18:57:39 | 显示全部楼层
各路大神,第一个差不多了,第二第三哪位有空的请动动手指,不胜感谢
回复

使用道具 举报

24#
 楼主| 发表于 2020-11-26 21:37:05 | 显示全部楼层
my9823 发表于 2020-11-26 20:40
第三个要求有个方法不过需要gnuwin32的一个小程序sed.exe

for /f  %%i  in  ('dir/b B目录 ^|sed.exe -e ...

感谢帮助!但感觉这个用批处理应该可以完成吧,不想上工具
回复

使用道具 举报

25#
 楼主| 发表于 2020-11-27 15:32:25 | 显示全部楼层
窄口牛 发表于 2020-11-27 07:02
把你那两个有问题文件夹的打包上来看看。要知道,对于文件文件夹判断都是基于实际存在路径,如果是单纯的列 ...

这个批处理就是为了构建一个完整pe的空文件框架用于BC做文件夹比对,可能是我表达不好,应该如junyee所说把列表创建包含在这个批处理之中,并且用dir/s  /b  /ad 和/a-d,分别创建文件夹列表和文件列表来构建
回复

使用道具 举报

26#
 楼主| 发表于 2020-11-27 15:39:37 | 显示全部楼层
窄口牛 发表于 2020-11-27 07:02
把你那两个有问题文件夹的打包上来看看。要知道,对于文件文件夹判断都是基于实际存在路径,如果是单纯的列 ...

这两个文件夹系统里应该都有的,您在c盘里看下
回复

使用道具 举报

27#
 楼主| 发表于 2020-11-27 15:42:57 | 显示全部楼层
my9823 发表于 2020-11-27 08:50
我觉得第二个要求,你应该分几步进行:先dir/a:d/b/s分别产生两个目录的目录列表进行比较得到B目录中有但A目 ...

能帮忙写个吗?
回复

使用道具 举报

28#
 楼主| 发表于 2020-11-27 18:48:15 | 显示全部楼层
窄口牛 发表于 2020-11-27 17:42
肯定是没有啊,有还要你传?

完整的空文件

CGI.7z

30.71 KB, 下载次数: 7, 下载积分: 无忧币 -2

回复

使用道具 举报

29#
 楼主| 发表于 2020-11-27 19:24:43 | 显示全部楼层
窄口牛 发表于 2020-11-27 19:07
看到这个路径,在bug10系统盘看到了,win7和2208r2确实没有。通过测试,我这里这两个文件夹也能被复刻,可 ...

先前文件对比没注意去看原文件,后来发现你这批处理会改写原文件日期,这个BUG有点大
回复

使用道具 举报

30#
 楼主| 发表于 2020-11-28 11:12:35 | 显示全部楼层
窄口牛 发表于 2020-11-28 10:48
单纯按列表处理,判断最后一列有没有点作为文件夹处理,难度好大。这样不去骚扰实际路径就行。

二楼有junyee坛友写的批处理,在生成文件列表时分为目录和文件,这样就不会出错了,我觉得这个比较合理
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-4-29 13:36

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表