我有一个包含制表符和空格的xml文件文件。我正在尝试在此文件中搜索字符串。文件类似于下面的内容。我正在尝试搜索 </ViewSettings>
,这被标签和空格所包围。
<ViewSettings>
<Location>
<X>0</X>
<Y>0</Y>
</Location>
</ViewSettings>
<WorkspaceName="FREE_UST_BETA_UA" PAth="\\mktxindfs\data_configuration\FREE_BETA" IsAdmin="false" />
</Workspaces>
我有以下代码
echo off
setlocal enabledelayedexpansion
for %%X in (C:\add\WorkspaceXML\Workspaces.xml) do (
set "reference=</ViewSettings>"
for /f "delims=" %%T IN (%%X) do (
set output=%%T
echo output:!output!
if !output!==!reference! echo found reference.....
)
)
它不会打印“找到参考”
由于
答案 0 :(得分:2)
您是否考虑过从findstr
构建批处理文件?此命令将通过报告文件名告诉您字符串是否在文件中。
findstr /M /c:"</ViewSettings>" C:\add\WorkspaceXML\Workspaces.xml
修改强>
如果您使用findstr /N /O ...
代替,您可以获得匹配的行号和偏移量,这可能对您更有用。上面案例中的输出将是
6:69:</ViewSettings>
编辑2
由于dbenham,上面添加了正确的偏移量。不确定偏移量是否仍然有用,但要在变量中获取这两个值,请尝试:
FOR /F "tokens=1,2 delims=:" %%a in ('findstr /N /O /c:"</ViewSettings>" C:\add\WorkspaceXML\Workspaces.xml') do echo %%a %%b
这只会为您显示变量,但您可以根据需要进行设置。