2014-06-18 30 views
0

我有這樣30.000線條像這樣的:添加「 - 」特定文字之間 - 批處理文件窗口

23 DE ENERO 23 DE ENERO 
23 DE ENERO AGUA SALUD 

ENERO(第一個)後,我需要添加一行「 - 」所以它會看起來像:

23 DE ENERO - 23 DE ENERO 
23 DE ENERO - AGUA SALUD 

我怎樣才能做到這一點與windows上的批處理文件?

或者在另一種語言中有更好的方法來實現這一點?

在此先感謝!

+0

是否有理由需要在批處理文件中執行此操作? *即*這是一個自動化過程?什麼阻止你在文本編輯器中使用查找/替換? – paddy

回答

2
@ECHO OFF 
SETLOCAL ENABLEDELAYEDEXPANSION 
(
FOR /f "delims=" %%a IN (q24276927.txt) DO (
    SET "line=%%a" 
    SET /a start=-1 
    CALL :split 
) 
)>newfile.txt 

GOTO :EOF 

:split 
SET /a start+=1 
IF "!line:~%start%,5!" neq "ENERO" GOTO split 
ECHO(!line:~0,%start%!ENERO - %line:*ENERO=% 
GOTO :eof 

我用了一個包含您的數據,我的測試命名爲q24276927.txt文件。 可生產newfile.txt

3

下面的批處理文件假設:

  • 有僅一個或每行兩個「ENERO」字樣,並
  • 第二個,如果有的話,是在端的線。

也就是說,就像你的示例數據!如果真實數據不同,則需要相應調整此方法。

@echo off 
setlocal EnableDelayedExpansion 

(for /F "delims=" %%a in (input.txt) do (
    set "line=%%a" 
    echo !line:ENERO =ENERO - ! 
)) > output.txt 
相關問題