2011-10-17 110 views
2

如何扩展以下批处理代码,以便Tim文件夹中的所有内容都针对Tom目录中的所有文件夹进行检查。查找并删除多个子目录中的重复项

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" 

回答

1

你几乎得到它,你只需要一个第二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 
) 
) 
+0

对不起香港专业教育学院测试了它(重写回波显示,而不是删除)但它为我工作。 (*)do( )回声寻找%%〜nxI for/r“C:\ tom”%% O in(%%〜nxI)do(*)do( for/r“c:\ tim” 如果存在%% O del/s/q“C:\ Tim \ %% O” ) ) – 2011-10-17 14:03:55

+0

请先测试一下,如果echo语句显示正确的值。因为你的'del/s/q“C:\ tim \ %% O'不能工作,因为它会增加两倍的路径,比如'del/s/q C:\ tim \ C:\ tim \ subdir \ myFile.txt' – jeb 2011-10-17 14:12:25

+0

@Bart btw。最好是编辑你的文章,而不是把大量的代码放在注释中 – jeb 2011-10-17 14:17:25