質問: バッチコマンドの「set」で入力した内容をファイルに出力する場合の問題点 dosのバッチコマンドで以下のようなものを作りました。 set /p abc= echo %abc% > nyuryoku.txt 画面から入力した文字を「nyuryoku.txt」に出力することを意図したものですが、2つ問題が出ています。 (1)何も入力しないと、「nyuryoku.txt」に「echo は です。」と出力されてしまいます。 これは「」(つまりnull値)を出力できないでしょうか。 (2)「123」を入力すると「nyuryoku.txt」に「123 」と出力されてしまします。つまり最後に半角スペースがついてしまいます。 これは「123」を出力できないでしょうか。 すみません。おわかりになる方がいたら教えてください。
回答: たしかに数字一文字では正常に出力されませんね。 どうやら遅延環境変数の展開で解決できそうです。 修正版を書きます。 setlocal enabledelayedexpansion set abc=. set /p abc= if %abc%==. goto e echo !abc!>test.txt :e end local これでどうでしょうか? お試し下さい。