0

我正在尝试编写一个 Windows 批处理脚本,它检查 XML 文件(iml 文件)以搜索特定行,. 我在字符串中的空格遇到问题。有没有办法逃脱或补偿空间?

for /f "tokens=*" %%a in (abcd.iml) do (
    echo %%a
    if %%a==^<orderEntry type="inheritedJdk" ^> (echo 'FOUND')
 )
4

2 回答 2

1

不需要for循环。一个简单findstr的要快得多:

 findstr /c:"<orderEntry type=\"inheritedJdk\" >" "abcd.iml" >nul && echo found || echo nope

注意:字符串中的引号必须转义(转义字符为findstr反斜杠)

于 2020-04-24T15:17:23.653 回答
1

将 %%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.htmlhttps://ss64.com/nt/equ.html

于 2020-04-23T20:56:08.447 回答