2012-04-27 6 views
3

可変長(それぞれ数百万行)のバッチにascii(.asc)ファイルのバッチに単純な単一行ヘッダを追加し、同じファイル名で保存する必要があります。私はこれらのファイルの数が多いです。これは、Windowsのバッチファイルを使用して行うのが最適ですか?もしそうなら、誰でも方法を説明するのを助けることができる?アドバンス - で可変長のASCIIテキストファイルにヘッダをバッチで追加

おかげで私は、これは簡単であるべき知っているし、かなり右のようで、何も答えを探したが見つからなかった...

答えて

1

あなただけが行うことができない、ファイルに何かを追加することができたよう簡単な操作でテキストに接頭辞を付けます。
しかし、あなたがすることができます:

  1. コピー最初の新しいファイルにあなたのヘッダーは(copy header.template header.tmp
  2. は(type original.txt >> header.tmp
  3. は、元のファイルを削除して、新しいファイルに元のファイルをコピー(del original.txt
  4. 新しいファイルの名前を元の名前に変更してください(ren header.tmp original.txt

EDI T:

for %%F in (*.txt) DO (
    echo Working on %%F 
    copy header.template newFile.tmp 
    type "%%~F" >> newFile.tmp 
    del "%%~F" 
    copy newFile.tmp "%%~F" 
) 
+0

ありがとうJeb、これは良い見えます...私の無知を示​​すが、どのように私は、各ファイルを 'オリジナル'として使用し、次にディレクトリ内の次のファイルに移動して同じようにするバットを得るのですか? – MGC77

+0

すべてのファイルにFORループを追加 – jeb

+0

ありがとうございました。これは最初のテスト後に完璧に見えます。私はそれがそれのようなものだと知っていましたが、助けが必要でした。 – MGC77

1

ファイル全体を書き換えることなくこれを行う方法はありません。

未テストバッチファイル:他の回答(複数可)を1として

​​

、複数のファイルが(実際にこの時間をテストした)このように行うことができます。

for %%F in (*.asc) DO (
    move "%%F" tmp.txt 
    echo header > "%%F" 
    type tmp.txt >> "%%F" 
    del tmp.txt 
) 
+0

+1、しかし、あなたは 'source.asc'だけではなく' source.asc.tmp'を削除するべきです – jeb

+0

ああありがとう、私はトラムの停止の間に私の電話でこれを書きました:) – dwurf

+0

ありがとうdwurf、どうやって私はそのバッチファイルを複数のファイル、つまり50個の.ascファイルのディレクトリを実行するようにしていますか? – MGC77

1

ジェブの答えはこれを解決したが、質問は、以下の方法は、より少ないコマンドと「バルクリネーム」操作を使用するため、多数のファイルで高速に実行する必要があると考えています。

for %%F in (*.txt) do (
    echo Working on %%F 
    copy header.template + "%%F" "%%~nF.tmp" 
) 
move /Y *.tmp *.txt 
+0

はい、これは短く、たぶん高速ですが、処理される '.txt'ファイルのスペースが一時的に2倍になるため、さらに多くのディスクスペースが必要になります。 (もちろん、「スペースは安い」などと言われていますが、それでも言及する価値のある細部を見つけることができます)。もちろん、現代のWindows PC上で動作する可能性が最も高いので、+1です。 : '/ B'スイッチを' copy'コマンドに追加して、ターゲットファイルの最後に厄介な '0x1A'が追加されないようにします。 –

関連する問題