.bat — запросить самый последний файл журнала, findstr, затем скопировать текст файла в буфер обмена.

Итак, мне часто приходится проверять журналы резервного копирования нескольких серверов, а затем копировать и вставлять журналы в базу данных. Я пытаюсь написать .bat, который найдет самый последний файл журнала, выполните FINDSTR, чтобы увидеть, успешно ли выполнено резервное копирование, а затем, если оно успешно, скопируйте текст файла журнала в буфер обмена, если это вообще возможно. . У меня есть все это, кроме части буфера обмена, но это не работает так, как я предполагал.

Немного необходимой информации -

Каждый журнал сохраняется на диске D: серверов. Все журналы именуются по следующему соглашению: BK(дата)-(набор резервных копий).txt — Пример — BK0901-001.txt.

В каталоге также обычно есть другие файлы, и они называются по тому же соглашению, за исключением префикса VY, или они будут иметь другое расширение, например файл .xml. Мне нужно избегать файлов с любым префиксом, кроме BK. и все остальные расширения.

@echo off
cd\
cls
set /p busrv=Server? 
FOR /F "delims=|" %%I IN ('DIR "\\%busrv%\d$\logs\UltraBac\BK*.txt" /B /O:D') DO findstr /I /C:"Completed Without Errors or Warnings."
IF %errorlevel%==0 (COPY TO CLIPBOARD) echo BACKUPS PASSED
IF %errorlevel%==1 echo BACKUPS NOT PASSED
pause

person itsmrmarlboroman2u    schedule 09.09.2013    source источник


Ответы (1)


Если информация найдена, то она будет в буфере обмена, иначе буфер обмена не изменится. Это не проверено:

@echo off
cls
set /p "busrv=Server? "
pushd "\\%busrv%\d$\logs\UltraBac\"
FOR /F "delims=" %%I IN ('DIR "bk*-*.txt" /B /O:D') DO set "file=%%I"
findstr /I /C:"Completed Without Errors or Warnings." "%file%" |clip
popd
pause
person foxidrive    schedule 09.09.2013
comment
еще один момент, с /o-d вы получаете самый старый файл, а не самый последний. Шаблон поиска может быть dir bk*-*.txt . - person Endoro; 10.09.2013
comment
@endoro Спасибо за исправление. Clip.exe есть в Vista и более поздних версиях, но я не уверен, что использует OP. - person foxidrive; 10.09.2013