- ベストアンサー
コマンドにてテキストファイルに文字列の追加
指定フォルダ内にある全てのテキストファイル(*.txt)の文末に 改行コードをいれたいです。 Windows標準のコマンドプロンプトまたはbatファイルでの実行が条件です。 テキストファイルの数および名称は不特定で、拡張子は「.txt」で固定です。 環境は2Kproですが、XP環境の事例でもOKです。 ご教授宜しくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
#1です。少し間違っていました。 dir /b *.txt >filelist for /f "delims=" %%i in (filelist) do copy "%%i"+CR "%%i" del filelist こんな感じですかね。 ロングファイルネームで空白などが使われている場合は、ダブルクォーテーションで囲む必要がありました。 (あと名前を変えたりしなくても良かったみたいです)
その他の回答 (3)
- pita-gora
- ベストアンサー率70% (102/145)
コマンドプロンプトで直接実行する場合以下のように1行のコマンド入力で可能です。 (ここでは C:\指定フォルダ 内のテキストファイルの例) for %a in ("C:\指定フォルダ\*.txt") do echo:>>"%a" バッチファイルの場合の例です。%a→%%aに記述を変える必要があります。 echo off pushd "C:\指定フォルダ" for %%a in (*.txt) do echo:>>"%%a" popd
お礼
回答ありがとうございます。 これもいけるんですねえ。
- Tacosan
- ベストアンサー率23% (3656/15482)
ちなみに /f オプションを付けた for には「コマンドの出力をそのまま読み込む」という形式もあります. for /f "delims=" %%i in ('dir /b*.txt') do ... あるいは (UNIX な人向けには) for /f "usebackq delims=" %%f in (`dir /b *.txt`) do ... となります. 詳しくは for /? をどうぞ.
お礼
回答有難うございます。 確認できました。
- piro19820122
- ベストアンサー率38% (256/672)
改行だけのテキストファイルを作成しておき(ここでは仮にCRという名前とする)、以下のようなbatファイルでいかがでしょうか? dir /b *.txt >filelist for /f "delims=" %%i in (filelist) do copy %%i+CR %%i2 del /f *.txt ren *.txt2 *.txt del filelist もちろん filelist や CR の名前は任意です。 通常のファイルではあり得ないような名前にしておくと良いでしょうね。 (flist.$$$ のような感じで) 予め改行だけのファイルを作成するのが難しければ、 echo.>CR という感じで、改行文字ファイルを作成するコマンドを使っても良いでしょう。
お礼
きました。 ファイルネームも考慮いただき感謝です。 このfilelistとForの使い方は汎用的に活用できそうです。勉強になります。 回答ありがとうございました。