递归运行一个命令,并检查它是否存在
问题描述:
在一个Windows Env上,我试图找到一种方法递归检查dirtree中的所有文件,以查看它们的文件名/大小是否与另一个目录中的文件列表匹配如果他们这样做的目录存在,那么其上运行的文件命令时发现递归运行一个命令,并检查它是否存在
Psudocode:
Loop{
If(RecursivelyFindFiles() = FileInFileListingInResources()) {
DoCommand(cmd1 -D -R -N %FoundFile C:\resources\%Filename)
}
}
我知道我想要什么,只是不知道如何做到这一点在Windows信封
答
这里是一个开始!
@echo off
rem %1 First folder
rem %2 Other folder to compare
FOR /R %1 IN (*.*) DO echo %%G
echo Done!
取而代之的是echo %%G
的,你可以调用fc %%G ABC
这是一个filecompare EXE。但我不知道如何将ABC格式化为文件夹2(%2)的路径+ %% G的基本文件名。
之后,一个if
测试fc
的结果,你可以调用你的处理。
对不起,我承认我必须在这里停下来!
答
@echo off
for /r %root% %%f in (*.*) do if exist ..\folder\%%~nxf call :furthertests %%f folder\%%~nxf
goto :eof
:furthertests
echo %1 found
if not "%~z1"=="%~z2" goto :eof
echo file sizes match (%~z1 bytes)
@rem Do your stuff with %1 here
@rem ...
假设%root%
是搜索树的开始,并..\folder\
包含原型文件。
哇,好像你已经做到了:)我今天已经学习了关于批处理文件的一些东西! – TridenT 2011-01-21 20:42:11