• ベストアンサー

コマンドプロンプト(2000)で入力値によって処理を変えたい

コマンドプロンプト(bat)プログラムの途中で ユーザからの入力を促して入力された値を 変数としてセットし、その値をif文などで 評価することにより分岐させて入力された値によって 様々な処理を行わすことは可能でしょうか。 シェルスクリプトであればreadコマンドのような ものに変わるコマンドを期待しています。 宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • you-m
  • ベストアンサー率58% (190/327)
回答No.2

Windows2000のプロンプトであれば、SETコマンドに/Pというオプションをつけて、同じ事が可能です。 詳しくはSET /? とやれば詳細なヘルプが出てきますが、例えば SET /P HOGE=何か入力しろ=> というコマンドが実行されると 何か入力しろ=> と表示され、入力待ちになります。 その後入力された内容は、変数HOGEに格納されます。 以上

whiteline507
質問者

お礼

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

その他の回答 (3)

noname#16386
noname#16386
回答No.4

>シェルスクリプトでいうsleepコマンドに変わるコマンド これは、標準ではなかったと思います。ただ、Resource Kit にはありますけど、必ず入ってるわけではないので困りますよね。 >何か勉強するのに(初心者用に)いいページなどありましたら教えていただけると幸いです。 マイクロソフトが提供してます。初心者からかなりの応用まで見つかって便利。 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnanchor/html/scriptinga.asp 日本語版のサイトも見つかりましたが、英語サイトに比べて情報が足りない気がします。 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/vtoriMicrosoftWindowsScriptTechnologies.asp いずれにしろ、こちらからマニュアルがダウンロードできますから、それ読めば30分もすれば簡単なスクリプトなら書けるようになりますよ。

whiteline507
質問者

お礼

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

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

>とくに厳密に何秒待つというわけではなく、 >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秒待つ)の様に使えます。

whiteline507
質問者

お礼

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

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.1

choice.exeと言うのがあります。 http://www.microsoft.com/resources/documentation/WindowsServ/2003/standard/proddocs/ja-jp/Default.asp?url=/resources/documentation/WindowsServ/2003/standard/proddocs/ja-jp/choice.asp パソコンに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 続きの処理 のようにします。

whiteline507
質問者

お礼

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

関連するQ&A

専門家に質問してみよう