我有以下代码:
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 (不在一行中)?
发布于 2018-11-01 14:01:48
你必须逃离&& -> ^&^&但是
不需要使用包含两个字符串的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 loophttps://stackoverflow.com/questions/53102597
复制相似问题