无忧启动论坛

标题: 请大家帮忙写个批处理 [打印本页]

作者: 2013koko    时间: 2020-11-25 11:21
标题: 请大家帮忙写个批处理
本帖最后由 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
本帖最后由 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
如果是一键网络pe,见原帖2楼,已经弄成了一键批处理。
作者: 江南一根葱    时间: 2020-11-25 14:19
估计现在是休息时间段,还有一个就是个人觉得作业不适合一次性布置太多。。。。。
还有一个就是2#。。。
作者: nttwqz    时间: 2020-11-25 14:48
难道大家都不用上班?
作者: 黑中见白    时间: 2020-11-25 15:31
正则用.过滤掉目录
因为99%的目录都是没有......的
作者: junyee    时间: 2020-11-25 16:18
本帖最后由 junyee 于 2020-11-26 08:33 编辑

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

  2. set txt=1.txt

  3. for /f "delims=" %%i in (%txt%) do (
  4.   if "%%~xi"=="" (
  5.     mkdir ".\%%~pni"
  6.   ) else (
  7.     mkdir ".\%%~pi" 2>NUL
  8.     copy nul ".\%%~pnxi" /y
  9.   )
  10. )

  11. PAUSE&&GOTO :EOF
复制代码







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

不是处理wim,单纯的bat
作者: 2013koko    时间: 2020-11-25 17:13
junyee 发表于 2020-11-25 16:18
看来好像都是在玩 sairen 的PE啊.

谢谢,这个是第一个的吧?我试试
作者: 2013koko    时间: 2020-11-25 17:17
本帖最后由 2013koko 于 2020-11-25 17:27 编辑
窄口牛 发表于 2020-11-25 15:42
也不发一个文本样品上来,按照描述好像有带点的目录,但不在最后一层?

就是Windows\WinSxS\amd64_microsoft.windows.*这样的,是目录不是文件
作者: junyee    时间: 2020-11-25 17:17
2013koko 发表于 2020-11-25 17:13
谢谢,这个是第一个的吧?我试试

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

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


~~~~
我现在已经变成单纯的伸手党了,如果有好的作品分享我一份哪~
作者: 2013koko    时间: 2020-11-25 17:21
junyee 发表于 2020-11-25 17:17
第二个好像有第三方命令比较两个文本区别的.
不过并不能 区分父目录与子文件~~

我这正在当伸手党呢
作者: 2013koko    时间: 2020-11-25 17:26
junyee 发表于 2020-11-25 17:17
第二个好像有第三方命令比较两个文本区别的.
不过并不能 区分父目录与子文件~~

第三个问题其实就是处理Windows\System32\zh-CN下的.mui文件,想偷懒直接提取所有.mui,然后比较Windows\System32下的文件,删除多余的.mui
作者: junyee    时间: 2020-11-25 17:35
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
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
junyee 发表于 2020-11-25 17:35
还是没明白.

zh\zh-CN\a.mui

是的
作者: 2013koko    时间: 2020-11-25 17:44
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
junyee 发表于 2020-11-25 16:18
看来好像都是在玩 sairen 的PE啊.

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

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

sshot-1.png

作者: junyee    时间: 2020-11-25 18:58
本帖最后由 junyee 于 2020-11-26 10:42 编辑
2013koko 发表于 2020-11-25 17:44
比如Windows\System32\zh-CN下有个cmd.exe.mui的文件,就去Windows\System32下查找是否存在cmd.exe文件, ...

  1. @echo off

  2. set muiDir=C:\Windows\System32\zh-CN
  3. set sysDir=C:\Windows\System32
  4. REM set dbg=echo

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

  8. pause
复制代码

作者: 2013koko    时间: 2020-11-25 19:23
junyee 发表于 2020-11-25 18:58

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

大佬这会儿有时间了吗?该做作业了吧
作者: 2013koko    时间: 2020-11-25 19:55
窄口牛 发表于 2020-11-25 19:47

大神也出马了,谢谢!现在在路上,一会就试
作者: 2013koko    时间: 2020-11-25 21:10
本帖最后由 2013koko 于 2020-11-25 21:11 编辑
窄口牛 发表于 2020-11-25 19:47

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

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

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

sshot-1.png

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

sshot-2.png

作者: 2013koko    时间: 2020-11-25 21:42
junyee 发表于 2020-11-25 18:58

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

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

sshot-1.png

作者: 2013koko    时间: 2020-11-25 23:59
窄口牛 发表于 2020-11-25 22:40
有空格就难度大了,我也玩不了。

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

我写的你没试吗,应该是有用的
作者: 2013koko    时间: 2020-11-26 09:47
junyee 发表于 2020-11-26 07:47
我写的你没试吗,应该是有用的

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

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

sshot-1.png

作者: 2013koko    时间: 2020-11-26 09:50
junyee 发表于 2020-11-26 07:47
我写的你没试吗,应该是有用的

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

QQ私信我吧,论坛这样交流太慢了。
作者: 2013koko    时间: 2020-11-26 09:57
junyee 发表于 2020-11-26 09:52
QQ私信我吧,论坛这样交流太慢了。

已将我的QQ号发给您了
作者: 窄口牛    时间: 2020-11-26 11:03
本帖最后由 窄口牛 于 2020-11-26 14:45 编辑
  1. @echo off
  2. Setlocal enabledelayedexpansion
  3. reg query HKU\S-1-5-20>nul || echo;CreateObject^("Shell.Application"^).ShellExecute "%~f0", "", "", "runas", 1 > "%temp%\getadmin.vbs" && cscript //b "%temp%\getadmin.vbs" && exit /b & del "%temp%\getadmin.vbs" /f /q>nul 2>nul
  4. pushd "%CD%"&& CD /D "%~dp0"
  5. FOR /f "delims=" %%a IN (ls.txt) DO (
  6. if exist %%a\ (md "%USERPROFILE%\desktop\结构目录%%~npxa") else md "%USERPROFILE%\desktop\结构目录%%~pa"&cd.>"%USERPROFILE%\desktop\结构目录%%~npxa"
  7. )
  8. pause>nul
复制代码



作者: junyee    时间: 2020-11-26 11:48


  1. @echo off &&setlocal enabledelayedexpansion

  2. set dbg=
  3. set txt=3.txt

  4. for /f "delims=" %%i in (%txt%) do (
  5.        
  6.   if "%%~xi"=="" (
  7.     mkdir ".\%%~pni"
  8.   ) else (
  9.     if not exist ".\%%~pi" (
  10.       set _dir=.\%%~pi
  11.       set _dir=!_dir:~0,-1!
  12.       del /f /q "!_dir!" 2>NUL
  13.       mkdir "!_dir!"
  14.     )
  15.     copy nul ".\%%~pnxi" /y
  16.   )

  17. )

  18. PAUSE&&GOTO :EOF
复制代码

作者: 2013koko    时间: 2020-11-26 13:30
窄口牛 发表于 2020-11-26 11:03

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

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

sshot-2.png

作者: 2013koko    时间: 2020-11-26 13:53
junyee 发表于 2020-11-26 11:48

这个批处理也很好,但是由于无法准确判断路径的底端是目录还是文件,还有些瑕疵。而窄大的批处理是有去实际路径中去检查的动作,因此能够准确创建。
作者: 2013koko    时间: 2020-11-26 14:06
junyee 发表于 2020-11-26 11:48

把文件列表的创建(目录列表和文件列表)和文件构建放在一个批处理里,问题就可以解决!
期待大神完成!
作者: junyee    时间: 2020-11-26 16:30
本帖最后由 junyee 于 2020-11-27 18:36 编辑
2013koko 发表于 2020-11-26 14:06
把文件列表的创建(目录列表和文件列表)和文件构建放在一个批处理里,问题就可以解决!
期待大神完成!
  1. @echo off
  2. pushd %~dp0

  3. rem        先输出文件和目录列表,如:
  4. set srcDir=D:\winpe\wepe\
  5. set outDir=.\output

  6. goto :rebuild


  7. dir /s /b /ad  "%srcDir%" >sys_folder.list
  8. dir /s /b /a-d "%srcDir%" >sys_file.list

  9. :rebuild
  10. dir *.list

  11. for /f "delims=" %%i in (sys_folder.list) do mkdir "%outDir%\%%~pnxi"

  12. for /f "delims=" %%i in (sys_file.list) do (

  13.         mkdir "%outDir%\%%~pi" 2>NUL
  14.         copy nul "%outDir%\%%~pnxi" /y

  15. )


  16. pause &&goto :EOF
复制代码


作者: 2013koko    时间: 2020-11-26 18:57
各路大神,第一个差不多了,第二第三哪位有空的请动动手指,不胜感谢
作者: my9823    时间: 2020-11-26 20:40
第三个要求有个方法不过需要gnuwin32的一个小程序sed.exe

for /f  %%i  in  ('dir/b B目录 ^|sed.exe -e  s/\.mui//g')  do (
if not exist A目录\%%i  del B目录\%%i.mui
)
作者: 2013koko    时间: 2020-11-26 21:37
my9823 发表于 2020-11-26 20:40
第三个要求有个方法不过需要gnuwin32的一个小程序sed.exe

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

感谢帮助!但感觉这个用批处理应该可以完成吧,不想上工具
作者: 窄口牛    时间: 2020-11-27 07:02
把你那两个有问题文件夹的打包上来看看。要知道,对于文件文件夹判断都是基于实际存在路径,如果是单纯的列表文件,那还得按照.扩展名来干判断。你这三个要求除了二感觉别的好像没有使用场景。
作者: my9823    时间: 2020-11-27 08:50
我觉得第二个要求,你应该分几步进行:先dir/a:d/b/s分别产生两个目录的目录列表进行比较得到B目录中有但A目录中没有的文件夹的列表来处理目录的差异。再dir/b/s得到A和B两目录的具体文件的列表,比较产生B目录存在但A目录中不存在的所有具体文件列表,再把这个列表中包含差异目录的行删除,然后比较得到同名目录是否有不同文件。
作者: 2013koko    时间: 2020-11-27 15:32
窄口牛 发表于 2020-11-27 07:02
把你那两个有问题文件夹的打包上来看看。要知道,对于文件文件夹判断都是基于实际存在路径,如果是单纯的列 ...

这个批处理就是为了构建一个完整pe的空文件框架用于BC做文件夹比对,可能是我表达不好,应该如junyee所说把列表创建包含在这个批处理之中,并且用dir/s  /b  /ad 和/a-d,分别创建文件夹列表和文件列表来构建
作者: 2013koko    时间: 2020-11-27 15:39
窄口牛 发表于 2020-11-27 07:02
把你那两个有问题文件夹的打包上来看看。要知道,对于文件文件夹判断都是基于实际存在路径,如果是单纯的列 ...

这两个文件夹系统里应该都有的,您在c盘里看下
作者: 2013koko    时间: 2020-11-27 15:42
my9823 发表于 2020-11-27 08:50
我觉得第二个要求,你应该分几步进行:先dir/a:d/b/s分别产生两个目录的目录列表进行比较得到B目录中有但A目 ...

能帮忙写个吗?
作者: 窄口牛    时间: 2020-11-27 17:42
肯定是没有啊,有还要你传?
作者: 2013koko    时间: 2020-11-27 18:48
窄口牛 发表于 2020-11-27 17:42
肯定是没有啊,有还要你传?

完整的空文件

CGI.7z

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


作者: 窄口牛    时间: 2020-11-27 19:07
看到这个路径,在bug10系统盘看到了,win7和2208r2确实没有。通过测试,我这里这两个文件夹也能被复刻,可能你的列表有问题。
作者: 2013koko    时间: 2020-11-27 19:24
窄口牛 发表于 2020-11-27 19:07
看到这个路径,在bug10系统盘看到了,win7和2208r2确实没有。通过测试,我这里这两个文件夹也能被复刻,可 ...

先前文件对比没注意去看原文件,后来发现你这批处理会改写原文件日期,这个BUG有点大
作者: 窄口牛    时间: 2020-11-27 22:25
文件夹的访问日期吧,创建日期应该不会。
作者: 窄口牛    时间: 2020-11-28 10:48
单纯按列表处理,判断最后一列有没有点作为文件夹处理,难度好大。这样不去骚扰实际路径就行。
作者: 2013koko    时间: 2020-11-28 11:12
窄口牛 发表于 2020-11-28 10:48
单纯按列表处理,判断最后一列有没有点作为文件夹处理,难度好大。这样不去骚扰实际路径就行。

二楼有junyee坛友写的批处理,在生成文件列表时分为目录和文件,这样就不会出错了,我觉得这个比较合理
作者: 窄口牛    时间: 2020-11-28 15:28
  1. @echo off
  2. Setlocal enabledelayedexpansion
  3. reg query HKU\S-1-5-20>nul || echo;CreateObject^("Shell.Application"^).ShellExecute "%~f0", "", "", "runas", 1 > "%temp%\getadmin.vbs" && cscript //b "%temp%\getadmin.vbs" && exit /b & del "%temp%\getadmin.vbs" /f /q>nul 2>nul
  4. pushd "%CD%"&& CD /D "%~dp0"
  5. FOR /f "delims=" %%i IN (ls.txt) DO (
  6. set a=%%~di
  7. set a=!a:~,1!
  8. for /f "delims=" %%a in ('echo "%%~nxi"^|find /v "."') do (
  9. md "%USERPROFILE%\desktop\目录结构\!a!%%~npxi")
  10. for /f "delims=" %%a in ('echo "%%~nxi"^|find "."') do (
  11. md "%USERPROFILE%\desktop\目录结构\!a!%%~pi"&cd.>"%USERPROFILE%\desktop\目录结构\!a!%%~npxi")
  12. )
  13. pause>nul
复制代码

作者: 2013koko    时间: 2020-11-28 18:06
窄口牛 发表于 2020-11-28 15:28

已试,现在ok了,谢谢!
作者: 2013koko    时间: 2020-11-29 17:28
换了个题目,请大家帮助一下
作者: nttwqz    时间: 2020-11-29 18:59
2013koko 发表于 2020-11-29 17:28
换了个题目,请大家帮助一下
原来的2迟迟不能解决

原来的2什么来着?
作者: 2013koko    时间: 2020-11-29 20:12
本帖最后由 2013koko 于 2020-11-29 20:15 编辑
nttwqz 发表于 2020-11-29 18:59
原来的2什么来着?

dir一个pe的文件列表,处理install.wim,只保留最后一个映像,并删除pe文件之外的多余文件(可以先dir目录,先删wim里的多余目录,然后再删多余文件)
如果处理.wim不好处理,能够生成一个删除文件列表也可以。
大侠能否出手帮助写一个,谢谢!
作者: nttwqz    时间: 2020-11-29 20:25
2013koko 发表于 2020-11-29 20:12
dir一个pe的文件列表,处理install.wim,只保留最后一个映像,并删除pe文件之外的多余文件(可以先dir目录 ...

你这是要复刻出来一个PE?直接使用修改不就好了,何必这么麻烦,或者使用wimbuilder 2生成一个
作者: sairen139    时间: 2020-11-29 20:43
2013koko 发表于 2020-11-29 20:12
dir一个pe的文件列表,处理install.wim,只保留最后一个映像,并删除pe文件之外的多余文件(可以先dir目录 ...

这个可以用wimlib dir install.wim —path=2/windows/>卷2的windows列表.txt
后续生成和制作删除列表看我《五秒制做完成网络骨头版》那个帖子,几秒钟就能制作完成网络骨头版的win10pe!
作者: sairen139    时间: 2020-11-29 20:45
sairen139 发表于 2020-11-29 20:43
这个可以用wimlib dir install.wim —path=2/windows/>卷2的windows列表.txt
后续生成和制作删除列表看 ...

应用这个方法如果你有精简系统文件的列表,甚至可以在十秒内精简出任意程度的境界系统镜像来。
作者: 2013koko    时间: 2020-11-29 20:49
nttwqz 发表于 2020-11-29 20:25
你这是要复刻出来一个PE?直接使用修改不就好了,何必这么麻烦,或者使用wimbuilder 2生成一个

能有批处理当然更快捷,更换版本也更方便
作者: 2013koko    时间: 2020-11-29 20:57
本帖最后由 2013koko 于 2020-11-29 21:12 编辑
sairen139 发表于 2020-11-29 20:45
应用这个方法如果你有精简系统文件的列表,甚至可以在十秒内精简出任意程度的境界系统镜像来。

能帮忙给个已有文件列表的批处理吗?(最好是处理.wim而不是提取,这样能保留目录的时间信息,个人强迫症)
现在通常的PE制作是winre+install,而我个人习惯的是install+winre,苦于对批处理一窍不通,效率极其低下。
知道您在这方面有经验,恳请帮忙改一个,不胜感谢!
此外,Windows\WinSxS、Windows\System32\DriverStore\FileRepository、Windows\System32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE} 这3个路径、文件改*号的有没有什么简便方法?

作者: sairen139    时间: 2020-11-29 21:19
2013koko 发表于 2020-11-29 20:57
能帮忙给个已有文件列表的批处理吗?(最好是处理.wim而不是提取,这样能保留目录的时间信息,个人强迫症 ...

这样的批处理语句就是去掉必要文件的简便方法(可以看我那个五秒制作骨头网络版pe的帖子,但是你要知道你想要保留什么文件在WIM包的winsxs里):
findstr /i "winsxs" 1list.txt | findstr /v ".*_microsoft.windows.c..-controls.resources_.*_zh-cn .*_microsoft.windows.common-controls .*_microsoft.windows.gdiplus_.*_none Manifests.*_microsoft.windows.i..utomation.proxystub Manifests.*_microsoft.windows.isolationautomation Manifests.*_microsoft.windows.systemcompatible" >>2list.txt

作者: sairen139    时间: 2020-11-29 21:21
2013koko 发表于 2020-11-29 20:57
能帮忙给个已有文件列表的批处理吗?(最好是处理.wim而不是提取,这样能保留目录的时间信息,个人强迫症 ...

我曾经制作过[发布] 极限精简的LTSB2016X64位系统文件列表files.txt————前后折腾一个月的极限精简成果
作者: sairen139    时间: 2020-11-29 21:31
sairen139 发表于 2020-11-29 21:21
我曾经制作过[发布] 极限精简的LTSB2016X64位系统文件列表files.txt————前后折腾一个月的极限精简成 ...

如果你要用wimlib的这个方法来精简系统可以参照我的这篇文章的附件的列表txt,如果你要制作pe那就参照《五秒制作完成网络骨头版pe》那篇帖子,要加install的话直接在五秒制作的帖子上在加批处理语句从install里用wimlib的参数提取所要文件然后用wimlib的update参数加到BOOT.WIM里,不复杂你看看wimlib的参数介绍就能搞了。我最近因为家里原因没时间折腾了最多只能看看你们的帖子给个方法了,只能说抱歉了。
作者: 2013koko    时间: 2020-11-29 21:50
sairen139 发表于 2020-11-29 21:31
如果你要用wimlib的这个方法来精简系统可以参照我的这篇文章的附件的列表txt,如果你要制作pe那就参照《 ...

好的,非常感谢,已经下载了您的批处理学习
作者: sairen139    时间: 2020-11-29 21:53
2013koko 发表于 2020-11-29 21:50
好的,非常感谢,已经下载了您的批处理学习

目前最快的5秒制作完成网络骨头版的WIN10pe,批处理语句如下:
copy Winre.wim BOOT.WIM /y
@echo off
set /a startS=%time:~6,2%
set /a startM=%time:~3,2%
echo %time%
%~dp0\wimlib dir winre.wim | find ".">1List.TXT
@echo off
findstr /vil "simsun.ttc SortDefault F\3ware.inf F\acpi.inf F\acpidev.inf F\acpipagr.inf F\acpitime.inf F\adp80xx.inf F\amdgpio2.inf F\amdi2c.inf F\amdsata.inf F\amdsbs.inf F\arcsas.inf F\basicdisplay.inf F\basicrender.inf F\battery.inf F\buttonconverter.inf F\c_apo.inf F\c_avc.inf F\c_battery.inf F\c_biometric.inf F\c_cdrom.inf F\c_computeaccelerator.inf F\c_computer.inf F\c_diskdrive.inf F\c_display.inf F\c_extension.inf F\c_firmware.inf F\c_hdc.inf F\c_hidclass.inf F\c_image.inf F\c_keyboard.inf F\c_legacydriver.inf F\c_mcx.inf F\c_media.inf F\c_mediumchanger.inf F\c_memory.inf F\c_modem.inf F\c_monitor.inf F\c_mouse.inf F\c_mtd.inf F\c_multifunction.inf F\c_multiportserial.inf F\c_net.inf F\c_netdriver.inf F\c_netservice.inf F\c_nettrans.inf F\c_ports.inf F\c_processor.inf F\c_proximity.inf F\c_sbp2.inf F\c_scmdisk.inf F\c_scmvolume.inf F\c_scsiadapter.inf F\c_sdhost.inf F\c_smartcard.inf F\c_smartcardfilter.inf F\c_smartcardreader.inf F\c_smrdisk.inf F\c_smrvolume.inf F\c_sslaccel.inf F\c_swcomponent.inf F\c_swdevice.inf F\c_system.inf F\c_ucm.inf F\c_unknown.inf F\c_usb.inf F\c_usbdevice.inf F\c_usbfn.inf F\c_volsnap.inf F\c_volume.inf F\c_wceusbs.inf F\dc21x4vm.inf F\disk.inf F\dwup.inf F\e2xw10x64.inf F\ehstortcgdrv.inf F\errata.inf F\errdev.inf F\genericusbfn.inf F\hal.inf F\halextintclpiodma.inf F\halextpl080.inf F\hdaudbus.inf F\hdaudio.inf F\hdaudss.inf F\hidbatt.inf F\hiddigi.inf F\hidi2c.inf F\hidinterrupt.inf F\hidserv.inf F\hidspi_km.inf F\hidvhf.inf F\hpsamd.inf F\iagpio.inf F\iai2c.inf F\iaLPSS2i_GPIO2_BXT_P.inf F\iaLPSS2i_GPIO2_CNL.inf F\iaLPSS2i_GPIO2_GLK.inf F\iaLPSS2i_GPIO2_SKL.inf F\iaLPSS2i_I2C_BXT_P.inf F\iaLPSS2i_I2C_CNL.inf F\iaLPSS2i_I2C_GLK.inf F\iaLPSS2i_I2C_SKL.inf F\ialpssi_gpio.inf F\ialpssi_i2c.inf F\iastorav.inf F\iastorv.inf F\input.inf F\ipmidrv.inf F\ipoib6x.inf F\iscsi.inf F\ItSas35i.inf F\kdnic.inf F\keyboard.inf F\lltdio.inf F\lsi_sas.inf F\lsi_sas2i.inf F\lsi_sas3i.inf F\lsi_sss.inf F\machine.inf F\mausbhost.inf F\mchgr.inf F\megasas.inf F\megasas2i.inf F\megasas35i.inf F\megasr.inf F\mf.inf F\mlx4_bus.inf F\mshdc.inf F\msmouse.inf F\msports.inf F\mssmbios.inf F\mtconfig.inf F\mvumis.inf F\ndisimplatform.inf F\ndisimplatformmp.inf F\ndisuio.inf F\ndisvirtualbus.inf F\net1ix64.inf F\net1yx64.inf F\net40i68.inf F\net44amd.inf F\net7400-x64-n650.inf F\net7500-x64-n650f.inf F\net7800-x64-n650f.inf F\net9500-x64-n650f.inf F\netax88179_178a.inf F\netax88772.inf F\nete1e3e.inf F\nete1g3e.inf F\netefe3e.inf F\netg664.inf F\netimm.inf F\netip6.inf F\netjme.inf F\netk57a.inf F\netl160a.inf F\netl1e64.inf F\netl260a.inf F\netloop.inf F\netmscli.inf F\netmyk64.inf F\netnb.inf F\netnvma.inf F\netnwifi.inf F\netrasa.inf F\netrass.inf F\netrast.inf F\netrtl64.inf F\netserv.inf F\netsstpa.inf F\nett4x64.inf F\nettcpip.inf F\netvf63a.inf F\netvg63a.inf F\netxex64.inf F\netxix64.inf F\npsvctrig.inf F\nvdimm.inf F\nvraid.inf F\pci.inf F\percsas2i.inf F\percsas3i.inf F\pmem.inf F\puwk.inf F\qd3x64.inf F\ramdisk.inf F\rawsilo.inf F\rdshup.inf F\rspndr.inf F\rt640x64.inf F\rtux64w10.inf F\sbp2.inf F\sceregvl.inf F\scmbus.inf F\scmvolume.inf F\scsidev.inf F\sdbus.inf F\sdstor.inf F\secrecs.inf F\sisraid2.inf F\sisraid4.inf F\SmartSAMD.inf F\smrdisk.inf F\smrvolume.inf F\spaceport.inf F\stexstor.inf F\stornvme.inf F\storufs.inf F\swenum.inf F\uaspstor.inf F\uefi.inf F\ufxchipidea.inf F\ufxsynopsys.inf F\umbus.inf F\umpass.inf F\unknown.inf F\usb.inf F\usbhub3.inf F\usbnet.inf F\usbport.inf F\usbser.inf F\usbstor.inf F\usbxhci.inf F\vdrvroot.inf F\vhdmp.inf F\virtdisk.inf F\volmgr.inf F\volsnap.inf F\volume.inf F\vsmraid.inf F\vstxraid.inf F\wdmaudiocoresystem.inf F\wdmvsc.inf F\whyperkbd.inf F\wmiacpi.inf F\wnetvsc.inf F\wstorflt.inf F\wstorvsc.inf F\wvmbus.inf F\wvmbushid.inf F\wvmbusvideo.inf F\ykinx64.inf L2Schemas aero.msstyles regedit aclui.dll advapi32.dll aepic.dll apisetschema.dll asycfilt.dll atl.dll authz.dll basesrv.dll bcd.dll bcdboot.exe bcdedit.exe bcryptprimitives.dll BFE.DLL BOOTVID.DLL BrokerLib.dll cabinet.dll cdd.dll cfgmgr32.dll ci.dll clb.dll cmd.exe cmdext.dll combase.dll comdlg32.dll coml2.dll conhost.exe console.dll credui.dll cryptbase.dll cryptdll.dll cryptsp.dll bcrypt.dll crypt32.dll cryptsvc.dll msxml ncrypt.dll rasapi32.dll wldp.dll csrsrv.dll csrss.exe C_1252.NLS C_437.NLS C_936.NLS d2d1.dll d3d11.dll dab.dll dabapi.dll dbgcore.dll dbghelp.dll devobj.dll devrtl.dll dhcpcore.dll dhcpcore6.dll dhcpcsvc.dll dhcpcsvc6.dll diskpart.exe dllhost.exe dnsapi.dll dnsrslvr.dll dpapi.dll dpapisrv.dll drvinst.exe drvload.exe drvsetup.dll drvstore.dll dsparse.dll dsrole.dll dui70.dll duser.dll dwmapi.dll DWrite.dll dxgi.dll eappprxy.dll EventAggregation.dll feclient.dll find.exe findstr.exe FirewallAPI.dll fltLib.dll fmifs.dll fontdrvhost.exe format.com fsutil.exe fsutilext.dll fveapi.dll fwbase.dll fwpolicyiomgr.dll FWPUCLNT.DLL gdi32.dll gdi32full.dll gpapi.dll hal.dll hhsetup.dll iertutil.dll ifsutil.dll IKEEXT.DLL imagehlp.dll imageres.dll imapi2.dll imm32.dll ipconfig.exe IPHLPAPI.DLL joinutil.dll KBDUS.DLL kd.dll KerbClientShared.dll kerberos.dll kernel.appcore.dll kernel32.dll KernelBase.dll keyiso.dll ksuser.dll ktmw32.dll l2nacp.dll linkinfo.dll lmhsvc.dll locale.nls logoncli.dll lsasrv.dll lsass.exe lsm.dll l_intl.nls mfc42u.dll mpr.dll MPSSVC.dll msasn1.dll msctf.dll msftedit.dll msimg32.dll msports.dll msprivs.dll msv1_0.dll msvcp110_win.dll msvcp_win.dll msvcrt.dll mswsock.dll ncsi.dll net.exe net1.exe netapi32.dll netbios.dll netcfgx.dll netjoin.dll netlogon.dll netmsg.dll netprovfw.dll NetSetupApi.dll NetSetupEngine.dll NetSetupSvc.dll netshell.dll netutils.dll newdev.dll ninput.dll nlaapi.dll nlasvc.dll normaliz.dll notepad.exe nrpsrv.dll nsi.dll nsisvc.dll ntasn1.dll ntdll.dll ntdsapi.dll ntlanman.dll NtlmShared.dll ntmarta.dll ntoskrnl.exe ole32.dll oleacc.dll oleaccrc.dll oleaut32.dll oledlg.dll OneCoreCommonProxyStub.dll onex.dll osuninst.dll powrprof.dll profapi.dll propsys.dll psapi.dll PSHED.DLL rasadhlp.dll rasman.dll reg.exe regsvr32.exe RpcEpMap.dll rpcrt4.dll RpcRtRemote.dll rpcss.dll rsaenh.dll rundll32.exe samcli.dll samsrv.dll schannel.dll schema.dat sechost.dll secur32.dll services.exe setupapi.dll SHCore.dll shell32.dll shlwapi.dll shutdownux.dll slc.dll SmiEngine.dll smss.exe spfileq.dll spinf.dll sppc.dll srvcli.dll srvsvc.dll sscore.dll sspicli.dll sspisrv.dll stdole2.tlb Storprop.dll svchost.exe sxs.dll sxssrv.dll sysclass.dll sysntfy.dll SystemEventsBrokerServer.dll takeown.exe taskmgr.exe TextShaping.dll ucrtbase.dll uexfat.dll ufat.dll ulib.dll umpdc.dll umpnpmgr.dll umpo.dll unattend.dll untfs.dll urlmon.dll user32.dll userenv.dll usp10.dll UXInit.dll uxtheme.dll vds.exe vdsbas.dll vdsdyn.dll vdsldr.exe vdsutil.dll vdsvd.dll vds_ps.dll version.dll virtdisk.dll webio.dll wevtapi.dll wevtsvc.dll wimgapi.dll wimserv.exe win32k.sys win32kbase.sys win32kfull.sys win32u.dll winbrand.dll Windows.FileExplorer.Common.dll windows.storage.dll CatRoot 2\drivers DriverStore WindowsCodecs.dll winhttp.dll wininet.dll wininit.exe wininitext.dll winlogon.exe winmm.dll winmmbase.dll winnlsres.dll winnsi.dll winpeshl winspool.drv winsrv.dll winsrvext.dll winsta.dll wintrust.dll WinTypes.dll wkscli.dll wkssvc.dll wlanapi.dll wlanhlp.dll wlanmsm.dll wlansec.dll wlansvc.dll wlanutil.dll Wldap32.dll wmiclnt.dll wpeutil ws2_32.dll wshhyperv.dll wsock32.dll wtsapi32.dll xcopy.exe xmllite.dll winload driver.stl winsxs" 1list.txt>2list.txt
findstr /i "winsxs" 1list.txt | findstr /v ".*_microsoft.windows.c..-controls.resources_.*_zh-cn .*_microsoft.windows.common-controls .*_microsoft.windows.gdiplus_.*_none Manifests.*_microsoft.windows.i..utomation.proxystub Manifests.*_microsoft.windows.isolationautomation Manifests.*_microsoft.windows.systemcompatible" >>2list.txt
echo.
echo 正在增删削减winre.wim包里的文件制作pe过程中,请您稍微等待。。。
del excel.txt /f /q
for /f "delims=" %%i in (2list.txt) do (
        echo delete --force --recursive "%%i">>excel.txt
    )
%~dp0wimlib update BOOT.WIM<excel.txt>NUL
%~dp0wimlib update BOOT.WIM<add2wim\add2wim.txt>NUL
%~dp0wimlib optimize BOOT.WIM

set /a endS=%time:~6,2%
set /a endM=%time:~3,2%
echo %time%
set /a diffS_=%endS%-%startS%
set /a diffM_=%endM%-%startM%
echo cost:%diffM_% %diffS_%

PAUSE

作者: sairen139    时间: 2020-11-29 21:57
sairen139 发表于 2020-11-29 21:53
目前最快的5秒制作完成网络骨头版的WIN10pe,批处理语句如下:
copy Winre.wim BOOT.WIM /y
@echo off
...

pc电脑上批处理运行5秒制作完成网络骨头版win10pe的截图如下:

F40940F7-599B-45CB-B085-D4054E62949A.jpeg (1.31 MB, 下载次数: 244)

F40940F7-599B-45CB-B085-D4054E62949A.jpeg

作者: sairen139    时间: 2020-11-30 15:37
sairen139 发表于 2020-11-29 21:53
目前最快的5秒制作完成网络骨头版的WIN10pe,批处理语句如下:
copy Winre.wim BOOT.WIM /y
@echo off
...

我又更新了最新批处理如下:
copy Winre.wim BOOT.WIM /y
@echo off
set /a startS=%time:~6,2%
set /a startM=%time:~3,2%
echo %time%
%~dp0\wimlib dir winre.wim | find ".">1List.TXT
%~dp0\wimlib dir winre.wim --path=windows\winsxs | find ".">winsxsList.TXT
@echo off
findstr /vil "simsun.ttc SortDefault 3ware.inf acpi.inf acpidev.inf acpipagr.inf acpitime.inf adp80xx.inf amdgpio2.inf amdi2c.inf amdsata.inf amdsbs.inf arcsas.inf basicdisplay.inf basicrender.inf battery.inf buttonconverter.inf c_apo.inf c_avc.inf c_battery.inf c_biometric.inf c_cdrom.inf c_computeaccelerator.inf c_computer.inf c_diskdrive.inf c_display.inf c_extension.inf c_firmware.inf c_hdc.inf c_hidclass.inf c_image.inf c_keyboard.inf c_legacydriver.inf c_mcx.inf c_media.inf c_mediumchanger.inf c_memory.inf c_modem.inf c_monitor.inf c_mouse.inf c_mtd.inf c_multifunction.inf c_multiportserial.inf c_net.inf c_netdriver.inf c_netservice.inf c_nettrans.inf c_ports.inf c_processor.inf c_proximity.inf c_sbp2.inf c_scmdisk.inf c_scmvolume.inf c_scsiadapter.inf c_sdhost.inf c_smartcard.inf c_smartcardfilter.inf c_smartcardreader.inf c_smrdisk.inf c_smrvolume.inf c_sslaccel.inf c_swcomponent.inf c_swdevice.inf c_system.inf c_ucm.inf c_unknown.inf c_usb.inf c_usbdevice.inf c_usbfn.inf c_volsnap.inf c_volume.inf c_wceusbs.inf dc21x4vm.inf disk.inf dwup.inf e2xw10x64.inf ehstortcgdrv.inf errata.inf errdev.inf genericusbfn.inf hal.inf halextintclpiodma.inf halextpl080.inf hdaudbus.inf hdaudio.inf hdaudss.inf hidbatt.inf hiddigi.inf hidi2c.inf hidinterrupt.inf hidserv.inf hidspi_km.inf hidvhf.inf hpsamd.inf iagpio.inf iai2c.inf iaLPSS2i_GPIO2_BXT_P.inf iaLPSS2i_GPIO2_CNL.inf iaLPSS2i_GPIO2_GLK.inf iaLPSS2i_GPIO2_SKL.inf iaLPSS2i_I2C_BXT_P.inf iaLPSS2i_I2C_CNL.inf iaLPSS2i_I2C_GLK.inf iaLPSS2i_I2C_SKL.inf ialpssi_gpio.inf ialpssi_i2c.inf iastorav.inf iastorv.inf input.inf ipmidrv.inf ipoib6x.inf iscsi.inf ItSas35i.inf kdnic.inf keyboard.inf lltdio.inf lsi_sas.inf lsi_sas2i.inf lsi_sas3i.inf lsi_sss.inf machine.inf mausbhost.inf mchgr.inf megasas.inf megasas2i.inf megasas35i.inf megasr.inf mf.inf mlx4_bus.inf mshdc.inf msmouse.inf msports.inf mssmbios.inf mtconfig.inf mvumis.inf ndisimplatform.inf ndisimplatformmp.inf ndisuio.inf ndisvirtualbus.inf net1ix64.inf net1yx64.inf net40i68.inf net44amd.inf net7400-x64-n650.inf net7500-x64-n650f.inf net7800-x64-n650f.inf net9500-x64-n650f.inf netax88179_178a.inf netax88772.inf nete1e3e.inf nete1g3e.inf netefe3e.inf netg664.inf netimm.inf netip6.inf netjme.inf netk57a.inf netl160a.inf netl1e64.inf netl260a.inf netloop.inf netmscli.inf netmyk64.inf netnb.inf netnvma.inf netnwifi.inf netrasa.inf netrass.inf netrast.inf netrtl64.inf netserv.inf netsstpa.inf nett4x64.inf nettcpip.inf netvf63a.inf netvg63a.inf netxex64.inf netxix64.inf npsvctrig.inf nvdimm.inf nvraid.inf pci.inf percsas2i.inf percsas3i.inf pmem.inf puwk.inf qd3x64.inf ramdisk.inf rawsilo.inf rdshup.inf rspndr.inf rt640x64.inf rtux64w10.inf sbp2.inf sceregvl.inf scmbus.inf scmvolume.inf scsidev.inf sdbus.inf sdstor.inf secrecs.inf sisraid2.inf sisraid4.inf SmartSAMD.inf smrdisk.inf smrvolume.inf spaceport.inf stexstor.inf stornvme.inf storufs.inf swenum.inf uaspstor.inf uefi.inf ufxchipidea.inf ufxsynopsys.inf umbus.inf umpass.inf unknown.inf usb.inf usbhub3.inf usbnet.inf usbport.inf usbser.inf usbstor.inf usbxhci.inf vdrvroot.inf vhdmp.inf virtdisk.inf volmgr.inf volsnap.inf volume.inf vsmraid.inf vstxraid.inf wdmaudiocoresystem.inf wdmvsc.inf whyperkbd.inf wmiacpi.inf wnetvsc.inf wstorflt.inf wstorvsc.inf wvmbus.inf wvmbushid.inf wvmbusvideo.inf ykinx64.inf L2Schemas aero.msstyles regedit aclui.dll advapi32.dll aepic.dll apisetschema.dll asycfilt.dll atl.dll authz.dll basesrv.dll bcd.dll bcdboot.exe bcdedit.exe bcryptprimitives.dll BFE.DLL BOOTVID.DLL BrokerLib.dll cabinet.dll cdd.dll cfgmgr32.dll ci.dll clb.dll cmd.exe cmdext.dll combase.dll comdlg32.dll coml2.dll conhost.exe console.dll credui.dll cryptbase.dll cryptdll.dll cryptsp.dll bcrypt.dll crypt32.dll cryptsvc.dll msxml ncrypt.dll rasapi32.dll wldp.dll csrsrv.dll csrss.exe C_1252.NLS C_437.NLS C_936.NLS d2d1.dll d3d11.dll dab.dll dabapi.dll dbgcore.dll dbghelp.dll devobj.dll devrtl.dll dhcpcore.dll dhcpcore6.dll dhcpcsvc.dll dhcpcsvc6.dll diskpart.exe dllhost.exe dnsapi.dll dnsrslvr.dll dpapi.dll dpapisrv.dll drvinst.exe drvload.exe drvsetup.dll drvstore.dll dsparse.dll dsrole.dll dui70.dll duser.dll dwmapi.dll DWrite.dll dxgi.dll eappprxy.dll EventAggregation.dll feclient.dll find.exe findstr.exe FirewallAPI.dll fltLib.dll fmifs.dll fontdrvhost.exe format.com fsutil.exe fsutilext.dll fveapi.dll fwbase.dll fwpolicyiomgr.dll FWPUCLNT.DLL gdi32.dll gdi32full.dll gpapi.dll hal.dll hhsetup.dll iertutil.dll ifsutil.dll IKEEXT.DLL imagehlp.dll imageres.dll imapi2.dll imm32.dll ipconfig.exe IPHLPAPI.DLL joinutil.dll KBDUS.DLL kd.dll KerbClientShared.dll kerberos.dll kernel.appcore.dll kernel32.dll KernelBase.dll keyiso.dll ksuser.dll ktmw32.dll l2nacp.dll linkinfo.dll lmhsvc.dll locale.nls logoncli.dll lsasrv.dll lsass.exe lsm.dll l_intl.nls mfc42u.dll mpr.dll MPSSVC.dll msasn1.dll msctf.dll msftedit.dll msimg32.dll msports.dll msprivs.dll msv1_0.dll msvcp110_win.dll msvcp_win.dll msvcrt.dll mswsock.dll ncsi.dll net.exe net1.exe netapi32.dll netbios.dll netcfgx.dll netjoin.dll netlogon.dll netmsg.dll netprovfw.dll NetSetupApi.dll NetSetupEngine.dll NetSetupSvc.dll netshell.dll netutils.dll newdev.dll ninput.dll nlaapi.dll nlasvc.dll normaliz.dll notepad.exe nrpsrv.dll nsi.dll nsisvc.dll ntasn1.dll ntdll.dll ntdsapi.dll ntlanman.dll NtlmShared.dll ntmarta.dll ntoskrnl.exe ole32.dll oleacc.dll oleaccrc.dll oleaut32.dll oledlg.dll OneCoreCommonProxyStub.dll onex.dll osuninst.dll powrprof.dll profapi.dll propsys.dll psapi.dll PSHED.DLL rasadhlp.dll rasman.dll reg.exe regsvr32.exe RpcEpMap.dll rpcrt4.dll RpcRtRemote.dll rpcss.dll rsaenh.dll rundll32.exe samcli.dll samsrv.dll schannel.dll schema.dat sechost.dll secur32.dll services.exe setupapi.dll SHCore.dll shell32.dll shlwapi.dll shutdownux.dll slc.dll SmiEngine.dll smss.exe spfileq.dll spinf.dll sppc.dll srvcli.dll srvsvc.dll sscore.dll sspicli.dll sspisrv.dll stdole2.tlb Storprop.dll svchost.exe sxs.dll sxssrv.dll sysclass.dll sysntfy.dll SystemEventsBrokerServer.dll takeown.exe taskmgr.exe TextShaping.dll ucrtbase.dll uexfat.dll ufat.dll ulib.dll umpdc.dll umpnpmgr.dll umpo.dll unattend.dll untfs.dll urlmon.dll user32.dll userenv.dll usp10.dll UXInit.dll uxtheme.dll vds.exe vdsbas.dll vdsdyn.dll vdsldr.exe vdsutil.dll vdsvd.dll vds_ps.dll version.dll virtdisk.dll webio.dll wevtapi.dll wevtsvc.dll wimgapi.dll wimserv.exe win32k.sys win32kbase.sys win32kfull.sys win32u.dll winbrand.dll Windows.FileExplorer.Common.dll windows.storage.dll CatRoot 2\drivers DriverStore WindowsCodecs.dll winhttp.dll wininet.dll wininit.exe wininitext.dll winlogon.exe winmm.dll winmmbase.dll winnlsres.dll winnsi.dll winpeshl winspool.drv winsrv.dll winsrvext.dll winsta.dll wintrust.dll WinTypes.dll wkscli.dll wkssvc.dll wlanapi.dll wlanhlp.dll wlanmsm.dll wlansec.dll wlansvc.dll wlanutil.dll Wldap32.dll wmiclnt.dll wpeutil ws2_32.dll wshhyperv.dll wsock32.dll wtsapi32.dll xcopy.exe xmllite.dll winload driver.stl winsxs" 1list.txt>2list.txt
findstr /v ".*_microsoft.windows.c..-controls.resources_.*_zh-cn .*_microsoft.windows.common-controls .*_microsoft.windows.gdiplus_.*_none Manifests.*_microsoft.windows.i..utomation.proxystub Manifests.*_microsoft.windows.isolationautomation Manifests.*_microsoft.windows.systemcompatible" winsxsList.TXT>>2list.txt
echo.
echo 正在增删削减winre.wim包里的文件制作pe过程中,请您稍微等待。。。
del excel.txt /f /q
for /f "delims=" %%i in (2list.txt) do (
        echo delete --force --recursive "%%i">>excel.txt
    )
%~dp0wimlib update BOOT.WIM<excel.txt>NUL
%~dp0wimlib update BOOT.WIM<add2wim\add2wim.txt>NUL
%~dp0wimlib optimize BOOT.WIM

set /a endS=%time:~6,2%
set /a endM=%time:~3,2%
echo %time%
set /a diffS_=%endS%-%startS%
set /a diffM_=%endM%-%startM%
echo cost:%diffM_% %diffS_%
echo.
echo 感谢您的等待,现在PE已经制作完成,BOOT.WIM就是你的网络骨头版pe成品!
echo 感谢您的等待,现在PE已经制作完成,BOOT.WIM就是你的网络骨头版pe成品!
echo 感谢您的等待,现在PE已经制作完成,BOOT.WIM就是你的网络骨头版pe成品!
echo.
PAUSE
作者: junyee    时间: 2020-11-30 16:34
windows 有个 fc 命令,就可以完成你要的第2项任务.

fc 1.txt 2.txt >comp_1-2.txt


作者: 2013koko    时间: 2020-11-30 17:35
junyee 发表于 2020-11-30 16:34
windows 有个 fc 命令,就可以完成你要的第2项任务.

fc 1.txt 2.txt >comp_1-2.txt

这个不成功呢,附件请测试一下

2.txt

61.04 KB, 下载次数: 9, 下载积分: 无忧币 -2

1.txt

914.66 KB, 下载次数: 9, 下载积分: 无忧币 -2


作者: sairen139    时间: 2020-11-30 18:00
A、B两个.txt文件,都是简短的文本行。
1、请对比A、B两个文件,输出两文件都有的相同行到C文件。
2、请对比A、B两个文件,输出两文件的差异行 A-B=D文件。
可以试试下面这个:
findstr /g:B.txt A.txt 这样后面加输出到C.txt(就是把A.txt里含有B.txt中的任意一行都输出出来)





作者: sairen139    时间: 2020-11-30 18:13
sairen139 发表于 2020-11-30 18:00
A、B两个.txt文件,都是简短的文本行。
1、请对比A、B两个文件,输出两文件都有的相同行到C文件。
2、请 ...

findstr /g:B.txt A.txt>C.TXT效果如下图所示正如你所求:

16214552-1A58-4E66-8074-D44E21AA39C4.jpeg (1.36 MB, 下载次数: 235)

16214552-1A58-4E66-8074-D44E21AA39C4.jpeg

作者: 2013koko    时间: 2020-11-30 18:33
本帖最后由 2013koko 于 2020-11-30 18:35 编辑
sairen139 发表于 2020-11-30 18:13
findstr /g:B.txt A.txt>C.TXT效果如下图所示正如你所求:

烦请下载 71# 的附件 1.txt、2.txt 测试一下,我这测试未达到效果
作者: junyee    时间: 2020-11-30 19:06
2013koko 发表于 2020-11-30 17:35
这个不成功呢,附件请测试一下

确实不行, fc 不能支持太大的文件对比.

用 linux 工具吧.

下载一个 cmder ,
然后在 cmder 执行以下:

  1. @echo off

  2. pushd %~dp0
  3. path %CD%;%PATH%

  4. mkdir tmp 2>NUL
  5. sort 1.txt >tmp\1.txt
  6. sort 2.txt >tmp\2.txt

  7. pushd tmp
  8. diff 1.txt 2.txt>diff_12.txt
  9. findstr "^<" diff_12.txt >1-2.txt
  10. findstr "^>" diff_12.txt >2-1.txt
  11. comm -12 1.txt 2.txt >comm_12.txt
  12. REM sed -i 's/^< //g' 1-2.txt
  13. REM sed -i 's/^< //g' 2-1.txt
  14. popd

  15. <span style="line-height: 1.5;">pause && GOTO :EOF</span>
复制代码


以下是执行结果,
不同的结果在 1-2.txt /  2-1.txt ,注意要用计事本替换一下 "< " 和 "> "
相同的结果 comm_12.txt

TEMP.zip (652.05 KB, 下载次数: 3)
作者: wom087    时间: 2021-3-5 08:11
进来学习一下
作者: 招联猪    时间: 2021-3-18 14:00

作者: sairen139    时间: 2021-5-11 07:43
sairen139 发表于 2020-11-30 18:13
findstr /g:B.txt A.txt>C.TXT效果如下图所示正如你所求:

lsmgr.exe

相同.txt

16.98 KB, 下载次数: 4, 下载积分: 无忧币 -2

cc.txt

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

无盘天使x64驱动.7z

52.54 KB, 下载次数: 1, 下载积分: 无忧币 -2


作者: luyigoog    时间: 2021-5-11 08:26
进来学习一下。
作者: gdd123123    时间: 2021-5-18 20:54
如何批处理关闭USB和网卡的节能模式
作者: huang1987    时间: 2023-11-12 12:16
谢谢分享
作者: dh98    时间: 2023-11-23 08:14
本帖最后由 dh98 于 2023-11-23 16:22 编辑

对比AB文本取行

@echo off
color f2

::对比A、B两个文件,输出两文件都有的相同行到C文件
findstr /g:B.txt A.txt > C.txt

::对比A、C两个文件,输出A文件中不同的行到D文件
findstr /v /g:C.txt A.txt > D.txt

::对比B、C两个文件,输出B文件中不同的行到D文件
findstr /v /g:C.txt B.txt >> D.txt

::显示结果
echo 文件比较完成!
echo.
echo AB文本中的相同行:
type C.txt
echo.
echo AB文本中的不同行:
type D.txt

pause>nul


作者: dh98    时间: 2023-11-23 08:23
本帖最后由 dh98 于 2023-11-23 16:22 编辑

如一开始,AB文本可以是TXT,也可以是INI

对比AB文本取行 - 先ini后txt

@echo off
color f2

set "fileA="
set "fileB="
set "fileC=C.txt"
set "fileD=D.txt"

::判断A文件的类型
IF EXIST A.ini (
    set "fileA=A.ini"
) ELSE IF EXIST A.txt (
    set "fileA=A.txt"
) ELSE (
    echo A文件不存在!
    pause
    exit
)

::判断B文件的类型
IF EXIST B.ini (
    set "fileB=B.ini"
) ELSE IF EXIST B.txt (
    set "fileB=B.txt"
) ELSE (
    echo B文件不存在!
    pause
    exit
)

::对比A、B两个文件,输出两文件都有的相同行到C文件
findstr /g:%fileB% %fileA% > %fileC%

::对比A、C两个文件,输出A文件中不同的行到D文件
findstr /v /g:%fileC% %fileA% > %fileD%

::对比B、C两个文件,输出B文件中不同的行追加到D文件
findstr /v /g:%fileC% %fileB% >> %fileD%

::显示结果
echo 文件比较完成!
echo.
echo AB文本中的相同行:
type %fileC%
echo.
echo AB文本中的不同行:
type %fileD%
pause>nul



作者: 2012飘水    时间: 2024-4-6 23:31
学习学习
作者: shinykers    时间: 2024-4-10 20:55
这个厉害,不过为啥不用工具呢?




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3