рекурсивно запустить команду и проверить, существует ли она - PullRequest
1 голос
/ 20 января 2011

В Windows Env я пытаюсь найти способ рекурсивной проверки всех файлов в папке «Грязь», чтобы увидеть, совпадают ли их имя файла / размер со списком файлов в другом каталоге, если они существуют в каталоге, тозапускает команду для найденного файла

Псудокод:

Loop{
If(RecursivelyFindFiles() = FileInFileListingInResources()) {

DoCommand(cmd1 -D -R -N %FoundFile C:\resources\%Filename)

}

}

Я знаю, чего хочу, просто не знаю, как это сделать в Windows Env

Ответы [ 2 ]

1 голос
/ 20 января 2011
@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\ содержит файлы прототипа.

0 голосов
/ 20 января 2011

это начало!

@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, который является файлом exe.Но я не знаю, как отформатировать ABC в Путь к папке 2 (% 2) + базовое имя файла %% G.
После теста if с результатом fc и вы можете вызвать вашу обработку.

Извините, я признаю, что должен остановиться здесь!

...