Ich habe Probleme über IF ELSE in Command Batch-Skript ...IF ELSE Problem COMMAND BATCH
in dem Editor:
Code:
:CHECKACCOUNT
if /I "%user%"=="insertusername" (GOTO :ACCOUNT) ELSE (GOTO :CHECKPASSACCT)
:CHECKPASSACCT
if /I "%pass%"=="insertpassword" (GOTO :ACCOUNT) ELSE (GOTO :COUNTER)
In COMMAND:
Code:
(war zu dieser Zeit unerwartet.
FULL Script-Code:
@echo off
::SETTINGS:::::::::::::::::::::::
set filetxt =userpass.txt
set log=logfile.log
set timer=900
::set default = true
::set user = 0
::set pass = 0
:::::::::::::::::::::::::::::::::
:STARTER
ECHO.>>%log%
ECHO ========START========>>%log%
SetLocal EnableDelayedExpansion
Set n=
Set _InputFile=%filetxt%
For /F "tokens=*" %%I IN (%_InputFile%) DO (
Set /a n+=1
Set acct!n!=%%I
)
set router_ip=%acct1%
set user=%acct2%
set pass=%acct3%
GOTO :CHECKFILE1
:CHECKFILE1
CLS
IF EXIST curl.exe (GOTO :CHECKFILE2) else (
ECHO ERROR: curl.exe was not found.>>%log%
ECHO ERROR: curl.exe was not found.
ECHO.
ECHO.
GOTO :PAUSEEXIT
)
:CHECKFILE2
CLS
IF EXIST sleep.exe (GOTO :CHECKACCOUNT) else (
ECHO ERROR: sleep.exe was not found.>>%log%
ECHO ERROR: sleep.exe was not found.
ECHO.
ECHO.
GOTO :PAUSEEXIT
)
:CHECKACCOUNT
if /I "%user%"=="insertusername" GOTO ACCOUNT
GOTO CHECKPASSACCT
:CHECKPASSACCT
if /I "%pass%"=="insertpassword" GOTO ACCOUNT
GOTO COUNTER
:ACCOUNT
CLS
::if %default% = true (GOTO :COUNTER) ELSE (
ECHO To edit/change USERNAME and PASSWORD... Please type: OPTION
ECHO.
SET /P user="Please enter the username of your Router:"
IF /I %user%==OPTION (Goto :EDITBAT)
CLS
ECHO To edit/change USERNAME and PASSWORD... Please type: OPTION
ECHO.
SET /P pass="Please enter the password of your Router:"
IF /I %pass%==OPTION (Goto :EDITBAT)
CLS
set /a i = 1
GOTO :CHECKACCOUNT
::)
:EDITBAT
start /WAIT notepad %filetxt%
set router_ip=%acct1%
set user=%acct2%
set pass=%acct3%
GOTO :CHECKACCOUNT
:COUNTER
IF %i%==0 (GOTO :RESETROUTER) ELSE (
ECHO WAIT %i% seconds...
sleep 1
set /a i = i - 1
CLS
GOTO :COUNTER
)
:RESETROUTER
CLS
ECHO READY to RESET....
ECHO Preparing....
sleep 2
sleep 2
CLS
ECHO Processing....
sleep 5
sleep 2
CLS
ECHO Success....
sleep 5
set /a i = %timer%
CLS
GOTO :COUNTER
:PAUSEEXIT
PAUSE
:EXIT
ECHO.>>%log%
ECHO ========END OF LOG FILE========>>%log%
Tatsächlich, wenn es keinen Code zwischen den zwei Blöcken gibt, dann können Sie es weiter vereinfachen und die 'GOTO CHECKPASSACCT' Zeile und die': CHECKPASSACCT' Zeile entfernen. – bta
immer noch nicht funktionieren: (..... Nachschlagen vollständigen Skript-Code ... – user453089
Wenn Sie sagen, dass es immer noch nicht funktioniert, welcher Fehler gibt es Ihnen und welche Zeile tritt der Fehler auf? Es kann nicht sein der gleiche Fehler, da das verursachende '(' nicht mehr existiert. – bta