批处理脚本读取第一行

时间:2014-02-19 09:18:13

标签: batch-file

我每晚都在服务器之间批量处理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

由于 此致

2 个答案:

答案 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