我试图写一个Windows批处理脚本,检查一个XML文件(iml文件),以搜索某一行,即.NET。 我在字符串中的空格方面遇到了问题。 有什么方法可以转义或补偿这些空格?
for /f "tokens=*" %%a in (abcd.iml) do (
echo %%a
if %%a==^<orderEntry type="inheritedJdk" ^> (echo 'FOUND')
)
把%%a加引号,这样就像"%%a"。与其使用"=="运算符来比较%%a和"^",不如使用EQU比较器,这样最后的代码就会像这样。
for /f "tokens=*" %%a in (abcd.iml) do (
echo %%a
if "%%a" EQU "<orderEntry type="inheritedJdk" >" (echo 'FOUND')
)
关于EQU和其他运算符的更多信息请看 https:/ss64.comntif.html 或 https:/ss64.comntequ.html
无需 for
循环。一个简单的 findstr
要快得多。
findstr /c:"<orderEntry type=\"inheritedJdk\" >" "abcd.iml" >nul && echo found || echo nope
注意:字符串中的引号必须被转义(转义字符为 findstr
是反斜杠)