CMD/BAT - [решено] Поиск и копирование самого нового файла

Ответить
 • Просмотры: 1
Аватара пользователя
V!RTuE

CMD/BAT - [решено] Поиск и копирование самого нового файла

Сообщение V!RTuE »

Вот есть такой код:



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. Т.е. нужно просканировать все папки с подпапками, которые указаны в реестре, и папки с подпапками, где расположен сам батник.
Аватара пользователя
V!RTuE

Re: CMD/BAT - [решено] Поиск и копирование самого нового файла

Сообщение V!RTuE »

Всё-таки мануалы лучше самому читать и более внимательно. Всё оказалось очень просто. Надо было добавить параметр /D к команде xcopy. и в первом случае copy заменить на xcopy (и тоже добавить параметр /y)





Код:

Код: Выделить всё

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 xcopy /D /y "%%j" "%f%ARCHIVE">nul
::Сканирование директории, где расположен батник и всех подпапок на наличие CONS_ERR.TXT и копирование в \ARCHIVE
for /r "%f%" %%f in ("CONS_ERR.TXT") do xcopy /D "%%f" "%f%ARCHIVE\" /y
Ответить

Вернуться в «Скриптовые языки администрирования Windows»