2011-04-11 99 views
11

我想創建一個批處理(.bat)給定的字符串文件爲Windows XP要做到以下幾點:如何找到某個文件包含使用Windows命令行

If (file.txt contains the string 'searchString') then (ECHO found it!) 
ELSE(ECHO not found) 

到目前爲止,我已經找到一種使用FIND命令搜索文件內的字符串的方法,該命令返回文件中找到該字符串的行,但無法對其進行有條件檢查。

例如,這不起作用。

IF FIND "searchString" file.txt ECHO found it! 

也沒有這樣的:

IF FIND "searchString" file.txt=='' ECHO not found 

如何可以做到這一點任何想法?

回答

6

看着這個post
接受的解決方案似乎也適合您。

+0

太棒了!謝謝!完美的作品。 – Jai 2011-04-11 20:34:20

4

從其他崗位:

find /c "string" file 
    if %errorlevel% equ 1 goto notfound 
    echo found 
    goto done 
    :notfound 
    echo notfound 
    goto done 
    :done 

或者是這樣的:如果沒有找到寫入文件。

find /c "%%P" file.txt || (echo %%P >> newfile.txt) 

或類似的東西:如果發現寫入文件。

find /c "%%P" file.txt && (echo %%P >> newfile.txt) 

或者類似的東西:

find /c "%%P" file.txt && (echo found) || (echo not found) 
+2

使用:「> nul 2>&1」來壓縮輸出「find/c」%% P「file.txt> nul 2>&1 ... .. – 2013-08-15 14:30:36

2

我已經使用了DOS命令行來做到這一點。 實際上兩條線。第一個將「當前目錄」設置爲文件所在的文件夾 - 或文件所在的一組文件夾的根文件夾。第二行進行搜索。

CD C:\TheFolder 
C:\TheFolder>FINDSTR /L /S /I /N /C:"TheString" *.PRG 

你可以在this link找到詳細的參數。

希望它有幫助!

相關問題