我正在尝试编写一个 Windows 批处理脚本,它检查 XML 文件(iml 文件)以搜索特定行,. 我在字符串中的空格遇到问题。有没有办法逃脱或补偿空间?
for /f "tokens=*" %%a in (abcd.iml) do (
echo %%a
if %%a==^<orderEntry type="inheritedJdk" ^> (echo 'FOUND')
)
我正在尝试编写一个 Windows 批处理脚本,它检查 XML 文件(iml 文件)以搜索特定行,. 我在字符串中的空格遇到问题。有没有办法逃脱或补偿空间?
for /f "tokens=*" %%a in (abcd.iml) do (
echo %%a
if %%a==^<orderEntry type="inheritedJdk" ^> (echo 'FOUND')
)
不需要for循环。一个简单findstr的要快得多:
findstr /c:"<orderEntry type=\"inheritedJdk\" >" "abcd.iml" >nul && echo found || echo nope
注意:字符串中的引号必须转义(转义字符为findstr反斜杠)
将 %%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.com/nt/if.html或https://ss64.com/nt/equ.html