Batch file 在多个子目录中查找和删除重复项
如何展开下面的批处理代码,以便根据Tom目录中的所有文件夹检查Tim文件夹中的所有内容 Beter说,如果Tim有一个名为Mytext.txt的文件,我怎么能检查所有文件,而不仅仅是从C:\Tom开始的顶级目录,可能是Tom中有另一个文件夹,另一个文件夹中有Mytext.txt 下面的所有代码目前都是检查指定的目录,只有我还想检查任何子目录吗Batch file 在多个子目录中查找和删除重复项,batch-file,find,directory-structure,Batch File,Find,Directory Structure,如何展开下面的批处理代码,以便根据Tom目录中的所有文件夹检查Tim文件夹中的所有内容 Beter说,如果Tim有一个名为Mytext.txt的文件,我怎么能检查所有文件,而不仅仅是从C:\Tom开始的顶级目录,可能是Tom中有另一个文件夹,另一个文件夹中有Mytext.txt 下面的所有代码目前都是检查指定的目录,只有我还想检查任何子目录吗 for /r "C:\Tim" %%f in (*) do if exist "C:\Tom\%%~nxf" del /s /q "C:\Tim\%%~n
for /r "C:\Tim" %%f in (*) do if exist "C:\Tom\%%~nxf" del /s /q "C:\Tim\%%~nxf"
你几乎得到了它,你只需要第二个
FOR/R
循环,就可以搜索TOM的所有子目录
for /r "c:\tim" %%I in (*) do (
echo searching for %%~nxI
for /r "C:\tom" %%O in (%%~nxI) do (
if exist %%O echo found in %%O
)
)
很抱歉,我已经测试过了(重写了echo以显示delete),但它不适合我。对于(*)do中的/r“c:\tim”%%I(echo搜索%%~nxI中的/r“c:\tom”%%O(%%~nxI)do(如果存在%%O del/s/q“c:\tim\%%O)),请先测试echo语句是否显示了正确的值。因为你的
del/s/q“C:\tim\%%O
无法工作,因为它会添加两倍的路径,比如del/s/q C:\tim\C:\tim\subdir\myFile.txt
@Bart Btw。如果你只想删除所有名为trydel/s/q%%~nx的文件,那么最好编辑你的帖子,而不是在评论中放很多代码“
,而不是~f,否则您将再次获得完整路径。顺便说一句,在代码失败的地方添加echo语句总是一个好主意,比如echo del/s/q“C:\Tim\%%O”