![]() |
Поиск и копирование самого нового файла
Вот есть такой код:
SET f=%~dp0 ::Сканирование ветки реестра КонсультантПлюс. В ней указывается рабочая директория, в которой также могут находится CONS_ERR.TXT. Копирование только нового в \ARCHIVE\ for /f "usebackq tokens=3" %%i in ( `reg.exe query "HKEY_CURRENT_USER\Software\ConsultantPlus" /s 2^>nul ^| findstr.exe /r /c:"WrkDir.*REG_SZ"` ) do if exist "%%~i\." for /f "delims=" %%j in ('dir /a-d/b/s "%%~i\CONS_ERR.TXT" 2^>nul') do copy "%%j" "%f%ARCHIVE">nul ::Сканирование директории, где расположен батник и всех подпапок на наличие CONS_ERR.TXT и копирование в \ARCHIVE for /r "%f%" %%f in ("CONS_ERR.TXT") do xcopy "%%f" "%f%ARCHIVE\" /y Помогите переделать код так, чтобы из всех найденных файлов копировался в папку \ARCHIVE только самый новый файл CONS_ERR.TXT. Т.е. нужно просканировать все папки с подпапками, которые указаны в реестре, и папки с подпапками, где расположен сам батник. |
Всё-таки мануалы лучше самому читать и более внимательно. Всё оказалось очень просто. Надо было добавить параметр /D к команде xcopy. и в первом случае copy заменить на xcopy (и тоже добавить параметр /y)
Код:
SET f=%~dp0 |
Время: 02:45. |
Время: 02:45.
© OSzone.net 2001-