2014-06-27 114 views
0

我做使用批處理腳本進行比較,我可以搜索字符串,如果它的存在與否它成功地州,但我有麻煩時,我的字符串有兩個部分:請參考下面的代碼,批處理腳本比較

@ECHO off 

SET key0="First Number"="1000" 

SET key1="First Number" 
SET key2== 
SET key3="1000" 

SET key4=%key1%%key2%%key3% 

FOR /f "tokens=*" %%a in (FILE.TXT) do call :processline %%a 

findstr /X %key4% FILE.txt 
if %errorlevel%==0 (

ECHO Key Exists 
) ELSE (
ECHO NO 
) 
PAUSE 
goto :eof 

如果我搜索key0或key4,我會得到結果NO。但是,如果我搜索鍵1,鍵2或KEY3我得到鍵存在....

任何想法如何,我搜索包含引號兩個單獨的詞串?

+0

請編輯您的問題,以更好地解釋後。什麼是':processline'?什麼是「失敗」 - :processline或findstr?這條線看起來應該是什麼樣子?確保清楚地顯示工作的代碼的示例,以及不起作用的示例。 – dbenham

回答

1

的工作方案是:

@ECHO off 

SET key0=\"First Number\"=\"1000\" 

SET key1=\"First Number\" 
SET key2== 
SET key3=\"1000\" 

SET key4=%key1%%key2%%key3% 

findstr /X /C:"%key4%" FILE.TXT 
if %errorlevel%==0 (
    ECHO Key Exists 
) ELSE (
    ECHO NO 
) 
PAUSE 
  1. 在搜索字符串中的每個雙引號必須用一個反斜槓轉義。
  2. 選項/C:必須用於文字字符串搜索而不是正則表達式搜索。
  3. 由於包含空格字符,整個搜索字符串本身必須使用雙引號。

我用的Findstr由微軟,並在命令提示符窗口此命令輸出的文檔,幫助進入findstr /?