2016-04-05 6 views
0

これは私が問題を抱えているコードです。私は彼らの尊敬されているクラス(CL)に送信することによって、適切な選択肢の行を実行する必要があります。すべてのエラーは、ERRORLEVELスクリプトと選択スクリプトにあります。これは私の唯一の主要な問題ですが、他の人を指摘して助けてもらえると感謝します。最高の願い、Mystikality。バッチファイルを使用して簡単なY/N質問を作成します。問題のあるコード。 HALP

cls 
@echo off 
echo Welcome to the Alpha PPFI Program V0.001. 
GOTO T1 

:T1 
echo This is a security program ran just by a simple Batch file. 
GOTO T2 

:T2 
echo If you have an interest in our program, enter your response below. 
GOTO Variable 

:Variable 
CHOICE /C YN /N /M "Welcome, if you would wish to continue, enter Y/N 
below." 
if %errorlevel%==Y GOTO Create 
if %errorlevel%==N GOTO ExitWarning 
:Create 
CHOICE /C YN /N /M "Create a new PPFI interface? Y/N" 
if %errorlevel%==Y GOTO BatchGen 
if %errorlevel%==N GOTO Variable 

:BatchGen 
start call CreatePPFI_V0.001.bat 
exit 
pause 

:ExitWarning 
CHOICE /C YN /N /M "Are you sure you want to exit V0.001 PPFI interface 
alpha? Y/N" 
if %errorlevel%==Y GOTO Variable 
if %errorlevel%==N GOTO exit' 

答えて

1

あなたは

if %errorlevel%==1 GOTO Create 
if %errorlevel%==2 GOTO ExitWarning 
+0

これはどういう意味ですか?詳細は? – Mystikality

+0

編集された答えを参照してください – SSH

+0

助けてくれてありがとうございます:) – Mystikality

0

あなたが確認する必要が

例えば1(最初の選択肢、 "Y")または2(2番目の選択肢、 "N")であるエラーレベルをチェックする必要が他のポスターと同じようにエラーレベル。しかし、彼らの方法は動作しません。 If errorlevelはその数値以上をテストします。したがって、その行を逆にするか、位置に依存しない方法で行います。

if errorlevel=1 if not errorlevel=2 Echo Error level is 1 exactly 

は助けをchoice /?if /?を参照してください。

+0

いいえ、あなたは 'errorlevel 1'などを考えています。'%errorlevel% 'を使うと、通常の変数のように扱われます。 – SomethingDark

+0

'if'を正しく使っていると仮定しましたが、そうではありません。もしそれがすべての仕事をテストするための標準的な方法であるならば、 'errorlevel'のための共振があります。したがって、私たちが持っている注文の代わりに、どのプログラムでも上書きすることができます。したがって、すべてのシステムで動作するわけではありません。 –

+1

ユーザがシステム変数を上書きできるだけの愚かさを持っている場合、コードを失敗させる必要があります。 – SomethingDark