2016-02-12 71 views
0
行特定的文本

我的輸入文件是這樣的:複製使用批處理

text text 
text text 
text START_CHR line 1: text text text; 
text START_CHR line 2: text text text; 
text START_CHR line 3: text text text; 
... 
text text 
eof 

我需要的所有行復制到文件START_CHR和「之間;'。

希望的輸出文件:

START_CHR line 1: text text text; 
START_CHR line 2: text text text; 
START_CHR line 3: text text text; 

line 1: text text text 
    line 2: text text text 
    line 3: text text text 

START_CHR和 ';'是行的分隔符。

不幸的是,FINDSTR 'START_CHR' inFile.txt> outFile.txt結果是:

text START_CHR line 1: text text text; 
text START_CHR line 2: text text text; 
text START_CHR line 3: text text text; 

如何,我可以得到所需的輸出文件?

乾杯,安迪

+1

是**的** START_CHR _ONE character_像''#,或_a string_像'START_CHR'? – Aacini

+1

提供混淆的示例通常會導致無法使用的腳本。 – Squashman

+0

START_CHR是字符串。行中的字符之間沒有空格。 – Andy

回答

1
@echo off 
setlocal EnableDelayedExpansion 

(for /F "delims=;" %%a in ('findstr "START_CHR" inFile.txt') do (
    set "line=%%a" 
    echo !line:*START_CHR=! 
)) > outFile.txt 
+0

它的作品!隊友的歡呼聲。可以在同一時間在行首添加字符嗎? – Andy

+0

爲什麼在每次運行FOR函數後清零輸出文件? – Andy

+0

@安迪,因爲單個重定向單個意味着覆蓋文件。如果您需要附加到文件,則使用兩個重定向符號。 – Squashman