2013koko 发表于 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文件。


2013koko 发表于 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


cchessbd 发表于 2020-11-25 14:19:18

如果是一键网络pe,见原帖2楼,已经弄成了一键批处理。

江南一根葱 发表于 2020-11-25 14:19:36

估计现在是休息时间段,还有一个就是个人觉得作业不适合一次性布置太多。。。。。
还有一个就是2#。。。

nttwqz 发表于 2020-11-25 14:48:35

难道大家都不用上班?

黑中见白 发表于 2020-11-25 15:31:20

正则用.过滤掉目录
因为99%的目录都是没有......的

junyee 发表于 2020-11-25 16:18:26

本帖最后由 junyee 于 2020-11-26 08:33 编辑

看来好像都是在玩 sairen 的PE啊.
@echo off

set txt=1.txt

for /f "delims=" %%i in (%txt%) do (
if "%%~xi"=="" (
    mkdir ".\%%~pni"
) else (
    mkdir ".\%%~pi" 2>NUL
    copy nul ".\%%~pnxi" /y
)
)

PAUSE&&GOTO :EOF





2013koko 发表于 2020-11-25 17:11:41

cchessbd 发表于 2020-11-25 14:19
如果是一键网络pe,见原帖2楼,已经弄成了一键批处理。

不是处理wim,单纯的bat

2013koko 发表于 2020-11-25 17:13:07

junyee 发表于 2020-11-25 16:18
看来好像都是在玩 sairen 的PE啊.

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

2013koko 发表于 2020-11-25 17:17:26

本帖最后由 2013koko 于 2020-11-25 17:27 编辑

窄口牛 发表于 2020-11-25 15:42
也不发一个文本样品上来,按照描述好像有带点的目录,但不在最后一层?
就是Windows\WinSxS\amd64_microsoft.windows.*这样的,是目录不是文件

junyee 发表于 2020-11-25 17:17:35

2013koko 发表于 2020-11-25 17:13
谢谢,这个是第一个的吧?我试试

第二个好像有第三方命令比较两个文本区别的.
不过并不能 区分父目录与子文件~~

第三个问题有点绕,有时间再琢磨你说的是什么.


~~~~
我现在已经变成单纯的伸手党了,如果有好的作品分享我一份哪~

2013koko 发表于 2020-11-25 17:21:54

junyee 发表于 2020-11-25 17:17
第二个好像有第三方命令比较两个文本区别的.
不过并不能 区分父目录与子文件~~



我这正在当伸手党呢{:1_189:}

2013koko 发表于 2020-11-25 17:26:22

junyee 发表于 2020-11-25 17:17
第二个好像有第三方命令比较两个文本区别的.
不过并不能 区分父目录与子文件~~



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

junyee 发表于 2020-11-25 17:35:46

2013koko 发表于 2020-11-25 17:26
第三个问题其实就是处理Windows\System32\zh-CN下的.mui文件,想偷懒直接提取所有.mui,然后比较Windows\ ...

还是没明白.

zh\zh-CN\a.mui
然后去
system32下找是否包含 文件a 吗? 没有的话删除 a.mui ?

junyee 发表于 2020-11-25 17:35:58

2013koko 发表于 2020-11-25 17:26
第三个问题其实就是处理Windows\System32\zh-CN下的.mui文件,想偷懒直接提取所有.mui,然后比较Windows\ ...

还是没明白.

zh\zh-CN\a.mui
然后去
system32下找是否包含 文件a 吗? 没有的话删除 a.mui ?

2013koko 发表于 2020-11-25 17:40:22

junyee 发表于 2020-11-25 17:35
还是没明白.

zh\zh-CN\a.mui


是的

2013koko 发表于 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

2013koko 发表于 2020-11-25 17:55:52

junyee 发表于 2020-11-25 16:18
看来好像都是在玩 sairen 的PE啊.

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

junyee 发表于 2020-11-25 18:58:50

本帖最后由 junyee 于 2020-11-26 10:42 编辑

2013koko 发表于 2020-11-25 17:44
比如Windows\System32\zh-CN下有个cmd.exe.mui的文件,就去Windows\System32下查找是否存在cmd.exe文件, ...

@echo off

set muiDir=C:\Windows\System32\zh-CN
set sysDir=C:\Windows\System32
REM set dbg=echo

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

pause

2013koko 发表于 2020-11-25 19:23:34

junyee 发表于 2020-11-25 18:58


谢谢,我试试。

2013koko 发表于 2020-11-25 19:41:28

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

大佬这会儿有时间了吗?该做作业了吧{:1_186:}

2013koko 发表于 2020-11-25 19:55:14

窄口牛 发表于 2020-11-25 19:47


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

2013koko 发表于 2020-11-25 21:10:41

本帖最后由 2013koko 于 2020-11-25 21:11 编辑

窄口牛 发表于 2020-11-25 19:47

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

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

2013koko 发表于 2020-11-25 21:42:06

junyee 发表于 2020-11-25 18:58


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

2013koko 发表于 2020-11-25 23:59:44

窄口牛 发表于 2020-11-25 22:40
有空格就难度大了,我也玩不了。

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

junyee 发表于 2020-11-26 07:47:43

2013koko 发表于 2020-11-25 23:59
想到个折衷的办法:先把目录中的空格删掉,生成后再改一下就可以了。
再次感谢!

我写的你没试吗,应该是有用的

2013koko 发表于 2020-11-26 09:47:32

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

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

2013koko 发表于 2020-11-26 09:50:34

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

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

junyee 发表于 2020-11-26 09:52:19

2013koko 发表于 2020-11-26 09:50
显示删除的是一些完全不存在的.mui文件,很奇怪,我的zh-cn下没有这些显示删除的.mui文件,难道强制读取 ...

QQ私信我吧,论坛这样交流太慢了。

2013koko 发表于 2020-11-26 09:57:55

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

已将我的QQ号发给您了
页: [1] 2 3
查看完整版本: 请大家帮忙写个批处理