Batch file .bat-检查文件中的字符串
我有一个用制表符和空格填充的xml文件。我正在尝试搜索此文件中的字符串。文件如下所示。我正在尝试搜索Batch file .bat-检查文件中的字符串,batch-file,dos,Batch File,Dos,我有一个用制表符和空格填充的xml文件。我正在尝试搜索此文件中的字符串。文件如下所示。我正在尝试搜索,它被选项卡和空格包围 <ViewSettings> <Location> <X>0</X> <Y>0</Y> </Location> </ViewSettings> <WorkspaceName="FREE_UST_BETA_UA" PAth="\\mktxindfs\data_
,它被选项卡和空格包围
<ViewSettings>
<Location>
<X>0</X>
<Y>0</Y>
</Location>
</ViewSettings>
<WorkspaceName="FREE_UST_BETA_UA" PAth="\\mktxindfs\data_configuration\FREE_BETA" IsAdmin="false" />
</Workspaces>
0
0
我有下面的代码
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.....
)
)
echo关闭
延迟扩展
对于(C:\add\WorkspaceXML\Workspaces.xml)中的%%X,请执行以下操作(
设置“引用=”
对于/f“delims=“%%T IN(%%X)do(
设置输出=%%T
回波输出:!输出!
如果!输出!==!引用!回显找到引用。。。。。
)
)
它不打印“找到的引用”
谢谢您是否考虑过使用
findstr
构建批处理文件?此命令将通过报告文件名来告诉您字符串是否在文件中
findstr /M /c:"</ViewSettings>" C:\add\WorkspaceXML\Workspaces.xml
编辑2
由于dbenham,上面添加了适当的偏移量。不确定偏移量是否仍然对您有用,但要在变量中获取这两个值,请尝试以下操作:
FOR /F "tokens=1,2 delims=:" %%a in ('findstr /N /O /c:"</ViewSettings>" C:\add\WorkspaceXML\Workspaces.xml') do echo %%a %%b
FOR/F“tokens=1,2 delims=:”%%a in('findstr/N/O/c:'c:\add\WorkspaceXML\Workspaces.xml')是否回显%%a%%b
当然,这只是为您显示变量,但您可以根据需要设置它们。嗨,Adam,是的,我想到了这一点,但我不确定它是否告诉我该字符串在文件中的确切位置。我需要在文件中的这个字符串之后执行一些操作。谢谢。@NewQueries-上面更新了,希望这能帮助更多。这很好,所以这将是我的控制台输出,对吗?有什么方法可以在变量中得到这个值吗?(主要是行号)@newquerys-偏移量没有你想象的那么有用。它是从文件开头到匹配行开头的偏移量(以字节为单位)。它不显示行中匹配字符串的偏移量。是否确实需要使用批处理文件或windows命令行工具执行此任务?你对其他工具开放吗?
FOR /F "tokens=1,2 delims=:" %%a in ('findstr /N /O /c:"</ViewSettings>" C:\add\WorkspaceXML\Workspaces.xml') do echo %%a %%b