Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 在多个子目录中查找和删除重复项_Batch File_Find_Directory Structure - Fatal编程技术网

Batch file 在多个子目录中查找和删除重复项

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

如何展开下面的批处理代码,以便根据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\%%~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。如果你只想删除所有名为try
del/s/q%%~nx的文件,那么最好编辑你的帖子,而不是在评论中放很多代码“
,而不是~f,否则您将再次获得完整路径。顺便说一句,在代码失败的地方添加echo语句总是一个好主意,比如
echo del/s/q“C:\Tim\%%O”