プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
Windows、バッチファイル(.bat)で画面からの入力を受け取る
結論から書けば

set /P 変数="入力を促す文字列"

でOKです。

それでは見ていきましょう。

ちょっくらバッチファイルを作ったのですが、うっかり起動された場合の対策として
「処理はじめて良い?(y/n)」的なものを最初に出したかったのです。
入力を促して「y」もしくは「Y」だったらそのまま処理続行、
それ以外なら処理を止めるってな流れで良いとは思うんだけど、
どうやって入力を取ればいいの(--?

というのが調べたきっかけです。

それでは調べてみましょうかね、ふむふむ(--)

set /P 変数="入力を促す文字列 "

で良いらしい。

例えば

set /P STR_INPUT="処理を開始します。よろしいですか?(Y/N): "

とか書いておけば、起動したときに「処理を開始します。よろしいですか?(Y/N): 」と表示され
入力内容は変数「STR_INPUT」に入ってくるのだそうな。
ちなみに変数の中身を参照するときは「%STR_INPUT%」ね。

と言うわけでサンプルφ(--)

@echo off

set /P STR_INPUT="処理を開始します。よろしいですか?(Y/N): "

IF "%STR_INPUT%" == "y" (
    echo "%STR_INPUT%:処理続行"
) ELSE IF "%STR_INPUT%"=="Y" (
    echo "%STR_INPUT%:処理続行"
) ELSE (
    echo "%STR_INPUT%:処理中止"
)

pause

特に難しいところは無いですよね。
入力を取ってif文で分けているだけです。

一つ大事な注意点として、変数と「=(イコール)」の間はスペースを開けちゃ駄目です。
例えば

set /P STR_INPUT = "処理を開始します。よろしいですか?(Y/N): "

とすると入力内容が受け取れないのでご注意ください。
「STR_INPUT = "~」ではなく「STR_INPUT="~」ですよ。
「あれ~?入力内容がちゃんと取れないんだけど~むきー(#`皿´)ノミ☆ガンガン」な人は
確認してみてくださいな。

そんな感じ\(--)/
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:コマンド/バッチ  thema:システム開発 - genre:コンピュータ  Posted by ササキマコト 

  関連記事