1

所以,我经常不得不检查多台服务器的备份日志,然后不得不将日志复制并粘贴到数据库中。我正在尝试编写一个 .bat 来查找最新的日志文件,执行 FINDSTR 以查看备份是否成功,然后,如果成功,将日志文件的文本复制到剪贴板,如果这甚至可能的话. 除了剪贴板部分之外,我已经将所有内容都删除了,但它并没有按照我想要的方式工作。

一点需要的信息——

每个日志都保存到服务器的 D: 驱动器。日志均按以下约定命名:BK(date)-(Backup Set).txt - Example - 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
4

1 回答 1

0

如果找到信息,那么它将在剪贴板上,否则剪贴板将不会更改。它未经测试:

@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
于 2013-09-09T23:21:37.600 回答