プロが教える店舗&オフィスのセキュリティ対策術

指定フォルダ内にある全てのテキストファイル(*.txt)の文末に
改行コードをいれたいです。

Windows標準のコマンドプロンプトまたはbatファイルでの実行が条件です。
テキストファイルの数および名称は不特定で、拡張子は「.txt」で固定です。

環境は2Kproですが、XP環境の事例でもOKです。
ご教授宜しくお願いします。

A 回答 (4件)

#1です。

少し間違っていました。

dir /b *.txt >filelist
for /f "delims=" %%i in (filelist) do copy "%%i"+CR "%%i"
del filelist

こんな感じですかね。
ロングファイルネームで空白などが使われている場合は、ダブルクォーテーションで囲む必要がありました。
(あと名前を変えたりしなくても良かったみたいです)
    • good
    • 0
この回答へのお礼

きました。

ファイルネームも考慮いただき感謝です。
このfilelistとForの使い方は汎用的に活用できそうです。勉強になります。

回答ありがとうございました。

お礼日時:2009/01/15 19:05

コマンドプロンプトで直接実行する場合以下のように1行のコマンド入力で可能です。


(ここでは C:\指定フォルダ 内のテキストファイルの例)

for %a in ("C:\指定フォルダ\*.txt") do echo:>>"%a"


バッチファイルの場合の例です。%a→%%aに記述を変える必要があります。
echo off
pushd "C:\指定フォルダ"
for %%a in (*.txt) do echo:>>"%%a"
popd
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
これもいけるんですねえ。

お礼日時:2009/01/28 14:20

ちなみに /f オプションを付けた for には「コマンドの出力をそのまま読み込む」という形式もあります.


for /f "delims=" %%i in ('dir /b*.txt') do ...
あるいは (UNIX な人向けには)
for /f "usebackq delims=" %%f in (`dir /b *.txt`) do ...
となります. 詳しくは
for /?
をどうぞ.
    • good
    • 1
この回答へのお礼

回答有難うございます。
確認できました。

お礼日時:2009/01/28 14:19

改行だけのテキストファイルを作成しておき(ここでは仮に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
という感じで、改行文字ファイルを作成するコマンドを使っても良いでしょう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A