2016-11-02 14 views
0

のために、私はTXTの最後の行を削除するか、またはスキップする必要があり、 これは私のTXTあるバッチが削除またはスキップ最後の行をTXT

cod_est nro_prsna_clnte   cod_prdto    cod_sub_prdto   cod_cntto    fch_est     
------- ------------------------ ------------------------ ------------------------ ------------------------ ----------------------- 
C      777388304      93      2003    690005635930 2016-10-17 00:00:00.000 

A     910065094290      93      2003    690018602410 2016-10-17 00:00:00.000 

A     910065094300      93      2003    690018602420 2016-10-17 00:00:00.000 

A     910065094280      93      2003    690018602400 2016-10-17 00:00:00.000 

(4 rows affected) 

とバッチがこの

for /F "tokens=1-6 skip=2" %%i in (OFB_INF_PSN_2.txt) do (echo %%i,%%j,%%k,%%l,%%m,%%n>> OFB_INF_PSN.txt) 
です

結果は、この

C,777388304,93,2003,690005635930,2016-10-17 

A,910065094290,93,2003,690018602410,2016-10-17 

A,910065094300,93,2003,690018602420,2016-10-17 

A,910065094280,93,2003,690018602400,2016-10-17 

(4,rows,affected),,, 

ですが、私は削除したり、最後の行をスキップする必要があります((4、行、影響を受けた),,,)

誰が私を助けることができる、 は、あなたが使用することができます)最後の列を望んでいた*データを与えられたので、あなたが不足しているを持っていることはほとんどありません提示し、

答えて

1

ぞんざいどうもありがとうございました

for /F "tokens=1-6 skip=2" %%i in (OFB_INF_PSN_2.txt) do if "%%n" neq "" (echo %%i,%%j,%%k,%%l,%%m,%%n>> OFB_INF_PSN.txt) 

のはここ"%%n""%%l%%m%%n"となり、「最後の3つの結果の各列が空です」

0

その他のオプションは、ファイルの出力をFINDコマンドにパイプして、「行aそのコンテンツから独立した最後の行をスキップし、より一般的な方法は、次のコードである「

for /F "tokens=1-6 skip=2" %%i in ('type OFB_INF_PSN_2.txt ^|find /I /V "rows affected"') do (echo %%i,%%j,%%k,%%l,%%m,%%n>> OFB_INF_PSN.txt) 
0

をffected:

@echo off 
setlocal EnableExtensions DisableDelayedExpansion 

rem // Define constants here: 
set "FILE_IN=OFB_INF_PSN_2.txt" 
set "FILE_OUT=OFB_INF_PSN.txt" 

rem // Redirect the entire output data once only: 
> "%FILE_OUT%" (
    rem // Reset variable holding line string: 
    set "LINE=" 
    rem // Read text file line by line: 
    for /F "usebackq skip=2 tokens=1-6" %%I in ("%FILE_IN%") do (
     rem // Toggle delayed expansion to not lose exclamation marks: 
     setlocal EnableDelayedExpansion 
     rem // Avoid output of initial empty line: 
     if defined LINE (
      rem // Output previous line string: 
      echo(!LINE! 
     ) 
     endlocal 
     rem // Store current line string to be output during next iteration delayed: 
     set "LINE=%%I,%%J,%%K,%%L,%%M,%%N" 
    ) 
) 

endlocal 
exit /B 
0

この例のバッチファイルの必要がありますのみ出力数で終わる行:

@(For /F "Tokens=1-6" %%A In ('FindStr [0-9]$ "OFB_INF_PSN_2.txt"') Do @Echo=%%A,%%B,%%C,%%D,%%E,%%F)>"OFB_INF_PSN.txt" 
関連する問題