我有一个名为test.xml的XML文件,可以在@ \ mymachine \ test下找到。内容如下所示。
<root><node1 component="component1" status="ToBeInstalled" />
<node2 component="component2" status="Installed" />
<node3 component="component3" status="ToBeInstalled" /></root>
现在我想写一个批处理脚本,它将从path \ mymachine \ test中读取这个test.xml并触发一个构建,如果对于任何组件(component1,component2,component3)状态是&#34; ToBeInstalled&# 34 ;.我将使用&#34; Script Trigger&#34;触发类型来实现这一点。但是你可以帮忙写一个批处理脚本吗?我是批处理脚本的新手。
答案 0 :(得分:0)
这个小批量文件搜索字符串 ToBeInstalled ,如果在文件中的任何位置找到字符串,则使用命令echo
输出一行。
@echo off
%SystemRoot%\System32\find.exe /C "ToBeInstalled" \mymachine\test\test.xml >nul
if not errorlevel 1 echo Trigger script as ToBeInstalled is found in XML file.
我不知道触发脚本的必要条件。
备用批次代码:
@echo off
%SystemRoot%\System32\findstr.exe /M /C:ToBeInstalled \mymachine\test\test.xml >nul
if not errorlevel 1 echo Trigger script as ToBeInstalled is found in XML file.
此代码使用 findstr 而非查找,它比查找更强大,对命令行语法的限制更少。
在命令提示符窗口中运行以下命令以获得其他帮助:
if /?
find /?
findstr /?
如果在文件中找不到字符串,则控制台应用程序find
和findstr
退出并返回代码1分配给 errorlevel 。否则返回码为0。
if not errorlevel 1
表示不是大于或等于1,换句话说小于1,即等于0为find
,而findstr
则以负数退出。