我每晚都在服务器之间批量处理robocopy文件夹。 生成一个日志文件,并使用Blat.exe
在最后发送邮件我想仅在robocopy失败时才发送邮件。 我看到的唯一方法是读取日志文件的第一行,以&#34开头;命令成功完成"如果robocopy运行没有问题
Command complete successfully.
-------------------------------------------------------------------------------
ROBOCOPY :: Robust File Copy for Windows :: Version XP010
-------------------------------------------------------------------------------
Started : Tue Feb 18 23:00:01 2014"
所以我想修改我的脚本以阅读第1行,如果它等于"命令成功完成",它绕过blat.exe和电子邮件发送
下面的脚本:
@Echo off
SET dizaine=A%time:~0,1%B
if A1B==%dizaine% goto OK
if A2B==%dizaine% goto OK
:ZERO
SET dizaine=0
goto fin
:OK
SET dizaine=%time:~0,1%
goto fin
:FIN
set a=%Date:~-4%-%Date:~-7,-5%-%Date:~-10,-8%_%dizaine%%Time:~-10,-9%%Time:~-8,-6%%Time:~-5,-3%
echo %a%
set logfile=C:\script\Logs\HW_database_sync%a%.log
net use H: \\x.x.x.x\SPB /USER:nobody nobody >> %logfile%
robocopy "C:\CIS" H:\DataBase\D /MIR /COPY:DAT /V /FP /NP /LOG+:%logfile% /FFT /R:0 /W:0 /TEE
net use H: /delete
C:/script/blat.exe %logfile% -to servicex@xxx.com -f hw_database_sync@xxx.com -server xxx.xxx.biz
由于 此致
答案 0 :(得分:0)
set /p complete=<logfile.txt
IF ["%complete%"]==["Command complete successfully."] echo successful
这应该有希望让你前进
答案 1 :(得分:0)
只有在日志文件中找不到字符串时才会启动blat。
该字符串实际上不在第1行吗?
find /i "Command complete successfully" <%logfile% >nul || C:\script\blat.exe %logfile% -to servicex@example.com -f hw_database_sync@example.com -server sub1.example.biz