2012-02-23 94 views
0

我有一個帶有製表符和空格的xml文件。我正試圖在這個文件中搜索一個字符串。文件如下所示。我正在嘗試搜索</ViewSettings>並且這由標籤和空格包圍。.bat - 檢查文件中的字符串

<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

您是否絕對需要使用批處理文件或Windows命令行工具來執行此任務?你打開其他工具嗎? – 2012-02-23 21:10:03

回答

2

你有沒有考慮建立你的批處理文件關閉的findstr呢?這個命令會通過報告文件名告訴你該字符串是否在文件中。

findstr /M /c:"</ViewSettings>" C:\add\WorkspaceXML\Workspaces.xml 

編輯

如果使用findstr /N /O ...相反,你可以得到行號和匹配(ES)的偏移量,也許這將是更多的使用你的。在你的情況下,輸出上面會

6:69:</ViewSettings> 

EDIT 2

正確的偏移以上感謝dbenham增加。不知道如果偏移仍然使用的給你,但要獲得瓦爾兩個值,試試這個:

FOR /F "tokens=1,2 delims=:" %%a in ('findstr /N /O /c:"</ViewSettings>" C:\add\WorkspaceXML\Workspaces.xml') do echo %%a %%b 

這只是顯示了瓦爾你,當然,但你可以將它們設置爲需要的。

+0

嗨,亞當,是的,我想到了這一點,但我不確定它是否告訴我這個字符串在文件中的確切位置。我需要在文件中的這個String之後做一些操作。謝謝。 – NewQueries 2012-02-23 19:00:31

+0

@NewQueries - 以上更新,希望對您有所幫助。 – 2012-02-23 19:12:49

+0

這很好,所以這將是我的控制檯輸出嗎?有沒有一種方法可以在變量中得到這個值?(主要是行號) – NewQueries 2012-02-23 19:38:28