
批處理從多個文件中讀取這兩行之間的內容如何提高效率最后由 soarhu 于 -1-17 13:03現在有10個文件(名字:file_name_c1, file_name_c2,....,file_name_c10 ),每個文件size大概為1M ~ 50M。每個文件都包含這兩行,其中一行包含 BUFFER POOL AND另外一行包含DATAbase USAGE從這些文件中讀取這兩行之間的內容,添加一行文字來作為分隔,另存為一個新文件。我根據幫助文檔和bathome.net寫了一個批處理,能夠運行,目前的問題效率較低(現在需要5分鐘時間),不知諸位有何建議來改進提高效率,提前謝謝諸位的關注和幫助,歡迎點評和建議!
添加 goto :eof希望生成的新文件格式如下:---file_path--- file_name1 --- date ---text between line_keyword_a and line_keyword_bin file1---file_path--- file_name2--- date ---text between line_keyword_a and line_keyword_bin file2---file_path--- file_name3--- date ---text between line_keyword_a and line_keyword_bin file3.........---file_path--- file_name10--- date ---text between line_keyword_a and line_keyword_bin file10nclick="copycode($('code0'));">復制代碼
- @echo off on & setlocal enabledelayedexpansion
- cls
- set new_name=newf01
- for /L %%i in (1,1,10) do (
- set /a cc_i=%%i
- call :next !cc_i!
- )
- goto :eof
- :next
- @echo off
- set file_name=pf_s%1.f01
- for /F delims= %%i in (%file_name%) do (
- set s=%%i
- if not !s:BUFFER POOL AND=! == !s! (set flag=) else if defined flag echo;!s!>>%new_name%.txt
- if not !s:DATAbase USAGE=! == !s! set flag=1
- if not !s:DATAbase USAGE=! == !s! echo ---%~dp0 --- %file_name% --- %date% --- >>%new_name%.txt
- )

