दूसरी बार आदेश को निष्पादित करने में विफल


0

जब मैं इस फाइल को चलाता हूं और मैं विकल्प 1 चुनता हूं और फिर दोबारा विकल्प 1. वह sfc / scannow कमांड चलाता है। लेकिन जब मैं ctrl + c और इसे शुरू करता हूं तो वह उस समय अटक जाता है जब वह sfc / scannow कमांड को चलाना चाहता है।

  @echo off
cls

echo Welkom, Ik ben de ASCI Reparatie Tool.
echo Wat wil je doen?
echo 1. SFC 
echo 2. Bootrec
echo 3. Ping
echo 4. Robocopy
echo 5. 
echo 6.
echo 7.
echo 8.
echo 9.
CHOICE /C 123456789 /N /M "input nummer"

IF ERRORLEVEL 1 SET KEUZE=GOTO SFC
IF ERRORLEVEL 2 SET KEUZE=GOTO bootrec
IF ERRORLEVEL 3 SET KEUZE=3
IF ERRORLEVEL 4 SET KEUZE=4
IF ERRORLEVEL 5 SET KEUZE=5
IF ERRORLEVEL 6 SET KEUZE=6
IF ERRORLEVEL 7 SET KEUZE=7
IF ERRORLEVEL 8 SET KEUZE=8
IF ERRORLEVEL 9 SET KEUZE=9

:SFC 
cls
echo Je wilt dus dde SFC command gebruiken.
echo Welke parameter wil je gebruiken?
echo 1. /scannow 
echo 2. /verifyonly
echo 3. /scanfile
echo 4. /verifyfile
echo 5. /help
CHOICE /C 12345 /N /M "Input nummer"

IF ERRORLEVEL 1 SET KEUZE=GOTO scan
IF ERRORLEVEL 2 SET KEUZE=GOTO only
IF ERRORLEVEL 3 SET KEUZE=GOTO file
IF ERRORLEVEL 4 SET KEUZE=GOTO verify
IF ERRORLEVEL 5 SET KEUZE=GOTO help

:scan

sfc /SCANNOW

pause

exit

:only

sfc /verifyonly

pause

exit

:file

sfc /scanfile

pause

exit

:verify

sfc /verifyfile

pause

exit

:help

sfc /help

pause

exit

ps यह मेरी पहली स्क्रिप्ट है और मैं एक बैच फ़ाइल बनाने से बहुत परिचित नहीं हूँ


मेरे पास डॉन है क्योंकि sfc को चलाने से पहले उसका व्यवस्थापक होना आवश्यक है। इस प्रकार यह दोनों समय व्यवस्थापक के रूप में चल रहा है
GW1990

इसलिए अपने स्क्रिप्ट लॉजिक में बदलाव =GOTOकरें & GOTO
पिंप जूस आईटी

किया और अब वह कहते हैं "पर्यावरण चर KEUZE परिभाषित नहीं है"।
GW1990

और यह पहली बार मैं इसे चलाने के काम करते हैं, लेकिन दूसरी बार यह फिर से विफल रहा। इस प्रकार यह समस्या नहीं है
GW1990

मुझे यकीन नहीं है कि आपका क्या मतलब है, लेकिन एक चर सेट करने के लिए वाक्यविन्यास और फिर एक दिनचर्या में जाने के लिए IF ERRORLEVEL <#> SET <VarName>=<VarValue> & GOTO :<RoutineName>आपको शायद सिर्फ जरूरत है IF ERRORLEVEL <#> GOTO :<RoutineName>और चर के लिए एक मूल्य निर्धारित करने की आवश्यकता नहीं है, KEUZEइसलिए कोशिश करें .......... ....IF ERRORLEVEL 1 GOTO :scan
दलाल रस आईटी

जवाबों:


1

उपयोग करते समय CHOICEऔर IF ERRORLEVELआपको अपने त्रुटिपूर्ण चेक को अवरोही क्रम में करना होगा क्योंकि चेक में IFनिर्दिष्ट संख्या के बराबर या उससे अधिक होने पर कमांड सही होगा IF ERRORLEVEL

 @echo off
 cls

 echo Welkom, Ik ben de ASCI Reparatie Tool.
 echo Wat wil je doen?
 echo 1. SFC 
 echo 2. Bootrec
 echo 3. Ping
 echo 4. Robocopy
 echo 5. 
 echo 6.
 echo 7.
 echo 8.
 echo 9.
 CHOICE /C 123456789 /N /M "input nummer"

 IF ERRORLEVEL 9 SET KEUZE=9 &GOTO :EOF
 IF ERRORLEVEL 8 SET KEUZE=8 &GOTO :EOF
 IF ERRORLEVEL 7 SET KEUZE=7 &GOTO :EOF
 IF ERRORLEVEL 6 SET KEUZE=6 &GOTO :EOF
 IF ERRORLEVEL 5 SET KEUZE=5 &GOTO :EOF
 IF ERRORLEVEL 4 SET KEUZE=4 &GOTO :EOF
 IF ERRORLEVEL 3 SET KEUZE=3 &GOTO :EOF
 IF ERRORLEVEL 2 GOTO bootrec
 IF ERRORLEVEL 1 GOTO SFC
 GOTO :EOF

 :SFC 
 cls
 echo Je wilt dus dde SFC command gebruiken.
 echo Welke parameter wil je gebruiken?
 echo 1. /scannow 
 echo 2. /verifyonly
 echo 3. /scanfile
 echo 4. /verifyfile
 echo 5. /help
 CHOICE /C 12345 /N /M "Input nummer"

 IF ERRORLEVEL 5 GOTO help
 IF ERRORLEVEL 4 GOTO verify
 IF ERRORLEVEL 3 GOTO file
 IF ERRORLEVEL 2 GOTO only
 IF ERRORLEVEL 1 GOTO scan

 :scan
 sfc /SCANNOW
 pause
 exit

 :only
 sfc /verifyonly
 pause
 exit

 :file
 sfc /scanfile
 pause
 exit

 :verify
 sfc /verifyfile
 pause
 exit
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.