0
我正在编写一个批处理脚本,根据用户输入在ip地址之间切换。 脚本的核心功能可以工作,但是我想在每个函数中添加一些检查来检查哪个设置已经被应用,并相应地给出响应。批处理脚本中的IF语句
我当前的代码是:
@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
我遇到麻烦IF语句当前的IP地址与一个我想将它设置比较。 任何人都可以建议我去哪里错了或提供一些想法,让这个工作请吗?
我每次调用菜单时都会设置它,因为除了终止脚本之外的每个函数都会返回到菜单。 (''ipconfig | findstr IP | findstr 192.'')SET LOCAL_IP = %% i' – user1288266 2012-03-23 14:30:37
我已经实现了获取IP的代码地址是错误的..我添加'usebackq'之前tokens = 2和local_ip变量现在正在拾取一个地址... 扭曲的故事,现在我得到一个无效的语句错误,现在在if语句。我还添加了Adriano建议的更改。 – user1288266 2012-03-23 17:12:02
请发布我们更新的代码!提示:删除** @回声关闭**看看会发生什么! – 2012-03-23 18:22:19