批处理删除文件列表中的文件

来源:百度知道 编辑:UC知道 时间:2024/07/07 10:09:25
用批处理 如何建立一个文件列表 包括目录下(有很多子目录)所有的文件(文件数目很多)
并 删除另一目录下的该列表中包括的所有文件

其实 我就是给一个游戏打了个补丁 (补丁包 还在,是个压缩包,手动打的补丁) 打补丁过程中没有发生覆盖
现在我想把所有的补丁文件删掉
文件夹A中有1,2,3,4等文件夹,每个文件夹中又有很多文件
文件夹B中有1,2,3,4等文件夹,每个文件夹中也有很多文件,将A中所有文件复制到B的文件下,并且没有发生覆盖
A文件夹还在 现在要从B中把复制过去的文件全删掉 文件1w来个

我的想法是 用dir/s/d >list.txt 之类 生成一个A的文件列表 再用pdel之类的从B中删 但我实现不了

1楼的根本不可能实现 list.txt有1w来行 再替换1w来次。。。要处理多久?
2楼我试了 不行啊

@echo off
set/p a=a文件夹路径,把文件夹拉进来得到路径
set/p b=b文件夹路径,把文件夹拉进来得到路径
for /f "Delims=" %%i in ('dir /b/s "%a%\*.*"')do del /q/f "%b%\%%~nxi"

只需要一个语句:

for /f %%i in ('dir /b /s E:\path') del /s "E:\game\%%~nxi"

其中E:\path是你的补丁目录,E:\game是你的游戏目录

难道你没看懂我的语句在告诉你list.txt是多此一举,直接比较两个目录把游戏目录里面的文件删除就OK.

给你提供个思路,先用你的方法 dis /s把所有的文件弄出来 然后 > list.txt到这里
然后你想想你的文件是
X:\....A\1\....
X:\....A\2\....
你说你的文件都复制到B
把这里的A\全部替换成B\
然后再把 X:\ 换成 del x:\
就可以得出一个批处理~

再加点吧
你不管目录 先查所有的文件
在A目录路径下 dir /b/s/a-d 得出来的全是文件名 没有其它信息 然后再换刚才的方法

替换又不是你替换,在记事本里按Ctrl+H 键就有替换,上边填 A\ 换成B:\然后全部替换,一次搞定