プロが教える店舗&オフィスのセキュリティ対策術

コマンドプロンプト(bat)プログラムの途中で
ユーザからの入力を促して入力された値を
変数としてセットし、その値をif文などで
評価することにより分岐させて入力された値によって
様々な処理を行わすことは可能でしょうか。

シェルスクリプトであればreadコマンドのような
ものに変わるコマンドを期待しています。

宜しくお願いいたします。

A 回答 (4件)

choice.exeと言うのがあります。


http://www.microsoft.com/resources/documentation …

パソコンにchoice.exeが入って無い場合、同等のソフトが同じ名前でフリーウェアとして公開されているので探して見て下さい。

batファイルの中で使う場合は

:loop
choice /c ync /n /m Yes or No or Cancel?
if errorlevel 1 goto Yes
if errorlevel 2 goto No
if errorlevel 3 goto Cancel
goto loop
:Yes
YESの処理
goto next
:No
NOの処理
goto next
:Cancel
キャンセル処理
:next
続きの処理

のようにします。
    • good
    • 0
この回答へのお礼

詳しい例まで書いていただいてありがとうございます。
こちらが記述していなかったので申し訳ないのですが
フリーウェアは都合により使えないので今回は見送らせていただきたいと思います。お手数おかけしました。

お礼日時:2005/12/10 02:41

Windows2000のプロンプトであれば、SETコマンドに/Pというオプションをつけて、同じ事が可能です。



詳しくはSET /? とやれば詳細なヘルプが出てきますが、例えば
SET /P HOGE=何か入力しろ=>

というコマンドが実行されると

何か入力しろ=>

と表示され、入力待ちになります。
その後入力された内容は、変数HOGEに格納されます。

以上
    • good
    • 0
この回答へのお礼

setは環境変数を見るだけのコマンドだと思っていました...
ありがとうございます。助かりました。
あと、追加で聞いて申し訳ないのですが、
シェルスクリプトでいうsleepコマンドに変わるコマンド
についても(Windows標準のコマンドで)ご存知でしたら教えていただけると助かります。
とくに厳密に何秒待つというわけではなく、
CPUを100%にさせずに条件が整うまでloopを回したいだけです。
宜しくお願いいたします。

お礼日時:2005/12/10 02:45

>とくに厳密に何秒待つというわけではなく、


>CPUを100%にさせずに条件が整うまでloopを回したいだけです。
人間の準備待ちということなら
PAUSE コマンドで待ちます
sleepさせる標準コマンドは無いと思いますが
VBScriptを使えば
sleep.vbs:
dim args
Set args = WSCript.Arguments
if args.Count < 1 then
WScript.Sleep(10000) '数値はミリ秒、引数が無いとき10秒待つ
else
WScript.Sleep(args.item(0)*1000)
end if
の様に指定した秒数待たせることができます。
バッチの中から上記を使うには
CScript /nologo sleep.vbs 3
(3秒待つ)の様に使えます。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
VBscriptですか...
Windows標準で使えるのであれば覚えておいて損は無いですね。(コマンドプロンプトだけでは限界がありますね)
何か勉強するのに(初心者用に)いいページなどありましたら教えていただけると幸いです。
助かりました。ありがとうございます。

お礼日時:2005/12/10 03:29

>シェルスクリプトでいうsleepコマンドに変わるコマンド



これは、標準ではなかったと思います。ただ、Resource Kit にはありますけど、必ず入ってるわけではないので困りますよね。

>何か勉強するのに(初心者用に)いいページなどありましたら教えていただけると幸いです。

マイクロソフトが提供してます。初心者からかなりの応用まで見つかって便利。

http://msdn.microsoft.com/library/default.asp?ur …

日本語版のサイトも見つかりましたが、英語サイトに比べて情報が足りない気がします。

http://www.microsoft.com/japan/msdn/library/defa …

いずれにしろ、こちらからマニュアルがダウンロードできますから、それ読めば30分もすれば簡単なスクリプトなら書けるようになりますよ。
    • good
    • 0
この回答へのお礼

ありがとうございます!
勉強します!(まずは日本語サイトからですね(苦笑))

お礼日時:2005/12/10 04:04

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