可変長(それぞれ数百万行)のバッチにascii(.asc)ファイルのバッチに単純な単一行ヘッダを追加し、同じファイル名で保存する必要があります。私はこれらのファイルの数が多いです。これは、Windowsのバッチファイルを使用して行うのが最適ですか?もしそうなら、誰でも方法を説明するのを助けることができる?アドバンス - で可変長のASCIIテキストファイルにヘッダをバッチで追加
おかげで私は、これは簡単であるべき知っているし、かなり右のようで、何も答えを探したが見つからなかった...
可変長(それぞれ数百万行)のバッチにascii(.asc)ファイルのバッチに単純な単一行ヘッダを追加し、同じファイル名で保存する必要があります。私はこれらのファイルの数が多いです。これは、Windowsのバッチファイルを使用して行うのが最適ですか?もしそうなら、誰でも方法を説明するのを助けることができる?アドバンス - で可変長のASCIIテキストファイルにヘッダをバッチで追加
おかげで私は、これは簡単であるべき知っているし、かなり右のようで、何も答えを探したが見つからなかった...
あなただけが行うことができない、ファイルに何かを追加することができたよう簡単な操作でテキストに接頭辞を付けます。
しかし、あなたがすることができます:
copy header.template header.tmp
)type original.txt >> header.tmp
)del original.txt
)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"
)
ファイル全体を書き換えることなくこれを行う方法はありません。
未テストバッチファイル:他の回答(複数可)を1として
、複数のファイルが(実際にこの時間をテストした)このように行うことができます。
for %%F in (*.asc) DO (
move "%%F" tmp.txt
echo header > "%%F"
type tmp.txt >> "%%F"
del tmp.txt
)
ジェブの答えはこれを解決したが、質問は、以下の方法は、より少ないコマンドと「バルクリネーム」操作を使用するため、多数のファイルで高速に実行する必要があると考えています。
for %%F in (*.txt) do (
echo Working on %%F
copy header.template + "%%F" "%%~nF.tmp"
)
move /Y *.tmp *.txt
はい、これは短く、たぶん高速ですが、処理される '.txt'ファイルのスペースが一時的に2倍になるため、さらに多くのディスクスペースが必要になります。 (もちろん、「スペースは安い」などと言われていますが、それでも言及する価値のある細部を見つけることができます)。もちろん、現代のWindows PC上で動作する可能性が最も高いので、+1です。 : '/ B'スイッチを' copy'コマンドに追加して、ターゲットファイルの最後に厄介な '0x1A'が追加されないようにします。 –
ありがとうJeb、これは良い見えます...私の無知を示すが、どのように私は、各ファイルを 'オリジナル'として使用し、次にディレクトリ内の次のファイルに移動して同じようにするバットを得るのですか? – MGC77
すべてのファイルにFORループを追加 – jeb
ありがとうございました。これは最初のテスト後に完璧に見えます。私はそれがそれのようなものだと知っていましたが、助けが必要でした。 – MGC77