プロが教えるわが家の防犯対策術!

下記のような処理を行うバッチを組みたいのですが、ご教示頂けないでしょうか。

・指定したフォルダの直下にある、不特定多数のテキストファイル全てに処理を行う
・テキストファイル内に文字列aaaがあれば下記【追記】の処理を行い、なければ次のテキストファイルへ処理を移す

【追記】
文字列aaaを含む行末にbbbを追記し、テキストファイル末尾に改行とcccを追記する。
(aaaを含む行は最大で1行)

よろしくお願いします。

A 回答 (1件)

テキストファイルに空行が含まれないなら、おおむね可能です。



cd /d 指定フォルダ
for %%F in (*.txt) do findstr aaa >NUL && call :file %%F
goto :EOF

:file
copy NUL tempfile
for /f "delims=" %%A in (%1) do call :sub "%%~A"
echo.>>tempfile
echo ccc>>tempfile
move tempfile %1
goto :EOF

:sub
set "X=%~1"
if "%X%" neq "%X:aaa=%" (echo %X%bbb)>>tempfile&goto :EOF
(echo %X%)>>tempfile
goto :EOF

てすとしてませんが、こんな感じで。
ファイル名に空白が含まれている場合は、ちょっと修正が必要。
ファイル中に、行頭が ; の文字がある場合も、ちょっと修正が必要。
    • good
    • 0
この回答へのお礼

遅くなりましたが、ありがとうございました。

お礼日時:2015/08/20 12:55

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