2014-02-18 44 views
0

我有一個問題,它是write a batch file to get a directory of text files/ search for a specific token and insert a line after that中解決問題的子集。通過創建bat文件在文本文件中插入變體字符串

我需要從文件夾中讀取一堆文本文件。找到每個文本文件的特定標記(如「花冠」),並在標記後插入一個帶有變體的新行。假設文本文件是這樣的:

first line 
second line 
a part of third line, Corolla, third line remaining 
INSERT THE NEW LINE Number 1 HERE 
a part of forth line, Corolla, firth line remaining 
INSERT THE NEW LINE Number 2 HERE 
The rest of file. 

並對該文件夾中的其他文件執行此操作。另外我不希望爲每個文件重置該變體。假設卡羅拉在第二個文件中找到這樣的變體應在3

開始解決非變體版本是:

@echo off 
set SrcFolder=C:\Input 
set DstFolder=C:\Output 
for %%a in ("%SrcFolder%\*.txt") do (
    (for /f "usebackq delims=" %%h in ("%%a") do (
    echo.%%h 
    echo %%h|findstr "Corolla" >nul&if not errorlevel 1 (
     echo THE NEW LINE 
    ) 
))>"%DstFolder%\%%~nxa" 
) 

但我需要添加的變體也是如此。

感謝

回答

1
@echo off 
set SrcFolder=C:\Input 
set DstFolder=C:\Output 
set Variant=0 
for %%a in ("%SrcFolder%\*.txt") do (
    (for /f "usebackq delims=" %%h in ("%%a") do (
    echo.%%h 
    echo %%h|findstr "Corolla" >nul&if not errorlevel 1 (
     set /a "Variant+=1" 
     setlocal enabledelayedexpansion 
     echo THE NEW LINE !Variant! 
     endlocal 
    ) 
))>"%DstFolder%\%%~nxa" 
) 
+0

謝謝..偉大工程。 – Bipario

+0

新問題:是否可以用新文件替換文件而不是在「DstFolder」中存儲新文件?謝謝 – Bipario

+1

@Bipario,'move/y「%DstFolder%\ %%〜nxa」「%%〜fa」'在文件創建後,就在外部'for'循環的右括號之前。 –