可変長 (数百万行ごと) の ascii (.asc) ファイルのバッチに単純な 1 行のヘッダーを追加し、同じファイル名で保存する必要があります。これらのファイルが多数あります。これは Windows バッチ ファイルで行うのが最適ですか? もしそうなら、誰かがその方法を説明するのを助けることができますか?
事前に感謝します-これは簡単なはずであり、答えを検索しましたが、まったく正しいと思われるものは見つかりませんでした...
可変長 (数百万行ごと) の ascii (.asc) ファイルのバッチに単純な 1 行のヘッダーを追加し、同じファイル名で保存する必要があります。これらのファイルが多数あります。これは Windows バッチ ファイルで行うのが最適ですか? もしそうなら、誰かがその方法を説明するのを助けることができますか?
事前に感謝します-これは簡単なはずであり、答えを検索しましたが、まったく正しいと思われるものは見つかりませんでした...
ファイル全体を書き換えずにこれを行う方法はありません。
テストされていないバッチ ファイル:
move source.asc source.asc.tmp
echo "header" > source.asc
type source.asc.tmp >> source.asc
del source.asc.tmp
他の回答によると、複数のファイルを次のように実行できます(今回は実際にテストされています):
for %%F in (*.asc) DO (
move "%%F" tmp.txt
echo header > "%%F"
type tmp.txt >> "%%F"
del tmp.txt
)
ファイルに何かを追加することしかできないため、単純な操作でテキストにプレフィックスを付けることはできません。
でも君ならできる:
copy header.template header.tmp
)type original.txt >> header.tmp
)del original.txt
)ren header.tmp original.txt
)編集:
for %%F in (*.txt) DO (
echo Working on %%F
copy header.template newFile.tmp
type "%%~F" >> newFile.tmp
del "%%~F"
copy newFile.tmp "%%~F"
)
jeb の回答はこの質問を解決しましたが、以下の方法は、使用するコマンドが少なく、「一括名前変更」操作を使用するため、多数のファイルでより高速に実行されるはずです。
for %%F in (*.txt) do (
echo Working on %%F
copy header.template + "%%F" "%%~nF.tmp"
)
move /Y *.tmp *.txt