- 締切済み
テキストファイルに複数行の文字列追加
自動化する方法はないでしょうか。 テキストファイルは複数で内容もまちまちですが、 特定の文字列が出てくるので、そこに三行ほど同じ内容を追記します。 マクロとかを使うのでしょうか? よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- eden3616
- ベストアンサー率65% (267/405)
下記作業は元のテキストファイルのバックアップを取ったうえで行ってください。 また、特定の文字列が1行の内の部分的に出てくる場合などでは使用できません。 (1)一つのフォルダにテキストファイルを入れます (2)新規メモ帳で追加する文字列を複数行入力し、(1)と同じフォルダに 「input.txt」で名前を付けて保存して閉じます。 (3)新規メモ帳に最下の「■バッチコマンド」以下のコマンドを貼り付けて 「set key=1行目」の「1行目」の部分を特定の文字列に変更してください。 変更後に、「追加.bat」で(1)のフォルダに名前を付けて保存します。 (4)(1)のフォルダの「追加.bat」をダブルクリックしてください。 参考に、以下は添付のようなファイル校正の場合の実行結果です。 input.txtの中身が以下のような場合で _____________ 追加する文字列を記入してください。 このファイルに記載された内容が 同じフォルダ内のテキストファイルに追加されます。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ test1.txt~test5.txtの中身が以下のような場合は _____________ これはtest1のファイルです。 1行目 2行目 3行目  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 追加.batを実行した後にtest1.txt~test5.txtの中身は以下のようになります _____________ これはtest1のファイルです。 1行目 追加する文字列を記入してください。 このファイルに記載された内容が 同じフォルダ内のテキストファイルに追加されます。 2行目 3行目  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ■バッチコマンド @echo off set key=1行目 for %%d in (*.txt) do ( if not %%d==input.txt ( for /f "delims=" %%t in (%%d) do ( if %%t==%key% ( echo %key%>>temp.txt for /f "delims=" %%a in (input.txt) do ( echo %%a>>temp.txt ) ) else ( echo %%t>>temp.txt ) ) del /q %%d rename temp.txt %%d ) )
- aokii
- ベストアンサー率23% (5210/22062)
テキストファイルの内容を、エクセルに貼り付けて、エクセルで自動化してはいかがでしょう。マクロでもできますが、テキストファイルが10個程度なら手動が簡単です。