批处理脚本
简介: 我是批处理脚本新手。希望在以下脚本中具有潜在客户。批处理脚本
目标:必须编写批处理命令来更新应用程序。然后读取应用程序更新后生成的日志,以检查它是否成功。
我运行使用一个简单的批处理文件的应用程序,在
C:\Documents and Settings\<user>\locals~1\temp\Application
我生成具有用于所述结果的命令
"C:\Program Files\Application\Test.exe" /application paramater /q /from "\\share\file"
日志文件(xyz.log)希望我的批处理文件运行第一个命令并读取日志文件中生成的结果(输出成功字符串)。
CanI可以得到任何输入。
这是不测试,但它是很好的起点,你可以用它来学习一些MS-DOS /批处理命令。如果您需要特定的语法帮助,键入命令提示符[some-command] /?
@echo off
:: variables --------------------
set appexe=C:\Program Files\Application\Test.exe
set share=\\share\file
set logfile=%TEMP%\Application\xyz.log
set appcmd="%appexe%" /param /q /from "%share%"
if not exist "%appexe%" echo Executable not found& goto END
if not exist "%share%" echo Shared folder not found& goto END
:: run executable ---------------
%appcmd%
if not exist "%logfile%" echo Logfile not found& goto END
:: iterate through logfile ------
find "update success text" "%logfile%" >NUL || (echo Update unsuccessful& goto END)
echo Update successful!
:END
pause
exit
编辑:用于find
,而不是一个循环。 +1并感谢舍甫琴科中号
可以使用FIND
命令来搜索一个文件的字符串:
FIND "success" "%TEMP%\Application\xyz.log" >NUL && (ECHO Update successful) || (ECHO Update failed)
%TEMP%
计算结果为当前用户系统临时文件夹。>NUL
取消输出FIND
命令。&&
如果找到字符串,则将控制权传递给后续命令(ECHO
)。||
如果搜索失败,则将控件传递给它后面的命令(另一个ECHO
)。
如果你想为FIND
结果上执行多个命令,你可以使用这样的事情:
FIND "string" file_name && (command1 & command2 & …) || (command3 & command4 & …)
或者您可以使用GOTO
命令。例如,像这样:
FIND "success" "%TEMP%\Application\xyz.log" >NUL || (GOTO searchfailed)
series of commands as a result of successful search
GOTO :EOF
:searchfailed
series of commands as a result of unsuccessful search
:label_name
是一个标签声明。 GOTO searchfailed
表示跳转到声明searchfailed
标签的行。
GOTO :EOF
本质上退出批处理脚本。(:EOF
是一个特殊的预先定义的标签指向在Ë第二Ø˚F˚F ILE)
在保持本网站的方法论的兴趣,如果你的问题得到解答,请接受下面的答案。 – kevlar1818