falha ao exucutar o comando uma segunda vez

0

Quando eu executo este arquivo e escolho a opção 1 e depois novamente a opção 1. Ele executa o comando sfc / scannow. Mas quando eu ctrl + c e começar de novo, fica preso no momento em que ele quer executar o comando 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 Este é o meu primeiro script e eu não estou muito familiarizado com a criação de um arquivo de lote

    
por GW1990 15.12.2017 / 13:32

1 resposta

1

Ao usar CHOICE e IF ERRORLEVEL , você deverá executar suas verificações de nível de erro em ordem decrescente porque o comando IF será verdadeiro quando o valor for maior ou igual ao número especificado na IF ERRORLEVEL check. / p>

 @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
    
por 15.12.2017 / 18:07