依頼内容の概略
ユーザーがコマンドプロンプトから入力した文字列をテキストファイルに順次保存していきたい。テキストファイルは上書きせずに、どんどん追記していく。(S様より)
依頼内容の詳細
ユーザーがコマンドプロンプトから入力した文字列を既存のテキストファイルに保存していきたいです。コマンドプロンプト上の表示は以下のようなイメージです。
【コマンドプロンプト上の表示】
入力してください…
(Enter キーでtestテキストに保存します。改行はできません。スペースキーをご利用ください。)
[ここで、ユーザーが文字列を入力する]
保存しました。
出力されるテキストは、以下ような感じです。
【出力されるテキスト例】
2017/02/28 あいうえお
2017/03/01 かきくけこ
弊サイトから回答
以下、ご要望がありましたユーザーの入力情報をテキストファイルに追記していくバッチファイルです。
1 2 3 4 5 6 7 8 9 |
@echo off rem ユーザーからの入力を変数「text」に代入する set /p text="入力してください…:" rem test.txtファイルに追記 echo %text% >> test.txt echo 保存しました。 |
4行目でユーザーに入力を求めます。それを変数「text」に代入し、7行目で「test.txt」ファイルに出力しています。
使用方法は、バッチファイルをコマンドプロンプト上で実行、もしくはダブルクリックしていただくと、テキストの入力を求められます。 テキストを入力し、「Enter」キーを押すと「test.txt」に入力したテキストが追記されます。 「test.txt」が存在しない場合は作成されます。 一度の入力でプログラムは終了します。
上記のプログラムを、さらに続けて何度もテキストを入力できるように改良しました(以下のバッチファイル)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
@echo off rem ラベル「:loop」 :loop rem ユーザーからの入力を変数「text」に代入する set /p text="入力してください…:" rem 「exit」と入力されたとき、バッチファイルを終了する if "%text%" == "exit" goto :end rem test2.txtファイルに追記 echo %text% >> test2.txt rem ラベル「:loop」に戻る goto :loop :end echo 保存しました。 |
「goto」コマンドとラベル機能によって繰り返し入力を求めるようループ処理を行っています。ただし、10行目に記述しているように、「exit」と打ち込むとループから脱出し、プログラムを終了するようにしています。
したがって、入力が終了したら「exit」を入力して下さい。プログラムを終了します。