IF-Anweisung im Batch-Skript

Ich Schreibe ein batch-Skript, das wechselt zwischen ip-Adressen abhängig von der Benutzer-Eingabe.
Die Kern-Funktionalität der script funktioniert, jedoch möchte ich hinzufügen, dass einige Kontrollen, die in jeder Funktion prüfen Sie die Einstellung bereits angewendet wird und geben eine Antwort entsprechend.

Mein aktuelle code:

@ECHO OFF
::Change Static IP address for simulator or network connection

:MAINMENU choose option from menu
::Set Current IP Address

for /F "tokens=2 delims=:" %%i in ('"ipconfig | findstr IP | findstr 192."') do SET LOCAL_IP=%%i

ECHO.
ECHO. Set Workstation...........1
ECHO. Set Simulator.............2
ECHO. Quit (no further action)..Q
ECHO.
choice /c:Q21
ECHO.

IF ERRORLEVEL 3 GOTO WORK
IF ERRORLEVEL 2 GOTO SIM
IF ERRORLEVEL 1 GOTO EOF

::Change IP To network settings
:WORK
IF "LOCAL_IP"=="192.168.1.4" (
ECHO. You are already in this mode
GOTO MAINMENU 
) ELSE
(echo "Setting Static IP Information" 
netsh int ip set address name="Local Area Connection" source=static addr=192.168.1.4 mask=255.255.255.0 gateway=192.168.1.254 gwmetric=1 
netsh int ip set dns name="Local Area Connection" source=static addr=192.168.1.1

echo IP Address Set
goto MAINMENU)

::Set Simulator IP Address
:SIM
IF "LOCAL_IP"=="192.168.4.1" (
ECHO. You are already in this mode
GOTO MAINMENU
) ELSE
echo "Setting Static IP Information"
netsh int ip set address name="Local Area Connection" source=dhcp
netsh int ip set dns name="Local Area Connection" source=dhcp
netsh int ip set address name="Local Area Connection" source=static addr=192.168.4.1 mask=255.255.255.0
echo "Setting Static IP Information"
goto MAINMENU

:EOF
pause

Ich habe Probleme dabei, die IF-Anweisung vergleichen Sie die aktuelle IP-Adresse mit, die ich will, um es zu.
Kann jemand empfehlen, wohin ich gehe falsch, oder bieten Ihnen einige Ideen, um diese arbeiten bitte?

InformationsquelleAutor user1288266 | 2012-03-23
Schreibe einen Kommentar