好的,我将逐步执行此操作:
步骤1:
set dir="C:\...[path to root directory]"
where /r %dir% *.zip *.iso *.rar >> log.txt
请注意,where
如果使用 Windows 7,该实用程序应该在您的计算机上。
第2步:
ren log.txt log.tmp
for /f "delims=." %%a in (log.tmp) do (Echo %%a >> log.txt)
del log.tmp
上面的代码不会处理带有句点的文件名
第 3 步:
for /f "tokens=*" %%a in (log.txt) do (
where /r %dir% %%a* >> files.txt
)
不是 100% 确定以上是否可行,如果不行,请告诉我。
第4步:
Rem This code will handle file paths to directories
Ren files.txt files.tmp
for /f "tokens=*" %%a in (files.tmp) do (
Echo %%~pa >> files.txt
)
del files.tmp
Rem The below code will ged rid of repeated direcotries
ren files.txt files.tmp
Echo. > files.txt
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in (files.tmp) do (
set var=1
for /f "tokens=*" %%b in (files.txt) do (
if "%%~a" equ "%%~b" set var=0
)
if !var!==1 Echo %%a >> files.txt
)
del files.tmp
我相当有信心这应该会奏效。当然,我没有对此进行测试,但是@Echo on
在每个部分之间使用暂停命令(或作为单独的批处理文件)运行所有这些,以便如果确实发生错误,我可以尝试帮助你。
希望这对您有所帮助,莫娜。