2009-02-19 32 views
6

XPおよびWindows 2003サーバーで動作するWindowsバッチスクリプトから入力を求めるプロンプトを表示する方法はありますか(Yes/No)?いくつかのコマンド(つまり:choice)は、あるOSでのみ動作し、他のOSでは動作しないようです。Windows XPおよび2003のWindowsバッチ選択コマンド

答えて

8

SETコマンドに/ Pスイッチを指定して使用してください。 SET /PコマンドがCHOICEコマンドとして、すべて同じ機能をサポートしていないことを

+2

タイムアウトとデフォルトについてはどうですか? – Baczek

6
SET /P RESULT=Y or N? 
ECHO %RESULT% 
6

は注意してください。すなわち:

  • それは、ユーザーがあなたが(「A」対例えば「A」)は、ケーシングの違いを確認する必要があり
  • を入力押さなければなら
  • 有効な値を入力するユーザーを制限するものではありません。
  • は、私はまだSET /PコマンドではなくCHOICEコマンドを使用することを好む、一定の時間これらの理由

後に特定の選択肢をデフォルトにする方法はありません。これを行うには、CHOICE.COMとバッチファイルを含める必要があります。 CHOICE.COMをMicrosoftからMS-DOS 6.22補足ディスク経由でダウンロードできます。ここにリンクがあります:例えば

http://support.microsoft.com/kb/117600

+0

残念ながら、 "choice.com"は64ビットシステムでは機能しません。 – Paulius

+2

私は64ビットWindows 7には 'CHOICE.EXE'が含まれていると思います。少なくとも、私のマシンはそれを持っており、私はそれを自分で置いていないと確信しています。 – aphoria

+0

あなたは正しい@aphoria、mineにchoice.exeがあり、私はそこに置いていません:) – MikeRoger

1

あなたはこれを使用することができます。

SET /P ANSWER=y OR n? 
If "%answer%"=="y" goto yes 
If "%answer%"=="n" goto no 

をお楽しみください!

2

これは基本的には何をしているのかを模倣します。バッチファイルにサブルーチンとして入れる必要があります。私は選択肢も好みますが、Windows XP上で動作するポータブルなものが必要です。

これを変更して他の「選択肢」を受け入れることもできますが、これは大文字と小文字を区別しないように機能し、ユーザーが明示的にY、Y、N、またはnを入力するまでプロンプトを繰り返します。

:yesorno 
set /p choice=%2 
if /i NOT %choice% == n (
    if /i NOT %choice% == y goto yesorno 
) 
set "%~1=%choice%" 
goto :eof 

それから経由でこのサブルーチンを呼び出します。これは、これまでの私のために非常によく働いています

call :yesorno answer "Do you want to continue? [Y/n]: " 

-1

Windows MillenniumのCHOICE.COMはXP SP3の下で私にとってうまく動作します。 しかし、鉱山はハンガリー語ですが、おそらく "windows millenium ebd"のようなオリジナルの英語の亜種を見つけることができます。

http://s000.tinyupload.com/index.php?file_id=57468192666746678653

+0

私はどこからでもアクセスできるようにC:\ windowsに入れました。 – BlueWings

+0

ようこそ。答えに直接答えを記入してください。また、以下をお読みください:https://stackoverflow.com/help/answering –

関連する問題