我有以下代码:
set "string_pdf=<module>PDF-hul</module>"
set string1=Well-Formed and valid
set /a loop100=0
for /f "tokens=*" %%i in ('dir /a-d /b /s %output%') do (
for /f "tokens=3 delims=>/<" %%p in ('find "%string_pdf%" "%%i" && find "%string1%" "%%i" ') do (
echo %%~ni >> %output%\pdf_hul.txt
set /a loop100+=1
)
)
我要遍历%output%
文件夹中的所有XML,并尝试在一个xml文件中查找Well-Formed and valid
和<module>PDF-hul</module>
的同时出现。当我仅使用一个find命令搜索一个变量时,此代码有效。但是,当我添加第二个时,会出现语法错误。
如何在一个xml中找到变量string_pdf
和string1
(不在一行中)?
答案 0 :(得分:2)
您必须转义&&
-> ^&^&
,但是
不需要IMO 2nd,只需使用带有两个字符串的findstr和
成功&&
时执行条件执行,并禁止findstr的任何输出
:: Q:\Test\2018\11\01\SO_53102597.cmd
@Echo off
set output=X:\Path
set "string_pdf=<module>PDF-hul</module>"
set string1=Well-Formed and valid
set /a loop100=0
for /f "tokens=*" %%i in ('dir /a-d /b /s "%output%*.xml"') do (
findstr /IM /c:"%string_pdf%" "%%i" >NUL 2>&1 && (
findstr /IM /c:"%string1%" "%%i" >NUL 2>&1 && (
echo %%~ni >> %output%\pdf_hul.txt
set /a loop100+=1
)
)
)
set loop