Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If statement 批处理脚本中的IF语句_If Statement_Batch File - Fatal编程技术网

If statement 批处理脚本中的IF语句

If statement 批处理脚本中的IF语句,if-statement,batch-file,If Statement,Batch File,我正在编写一个批处理脚本,根据用户输入在ip地址之间切换。 脚本的核心功能正常工作,但我想在每个函数中添加一些检查,以检查已应用的设置,并给出相应的响应 我目前的代码是: @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

我正在编写一个批处理脚本,根据用户输入在ip地址之间切换。 脚本的核心功能正常工作,但我想在每个函数中添加一些检查,以检查已应用的设置,并给出相应的响应

我目前的代码是:

@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地址与我要设置的IP地址进行比较时遇到问题。
有人能告诉我哪里出了问题,或者提供一些想法让这项工作正常进行吗?

我想
LOCAL\u IP
是一个环境变量,要使用它们,您必须将名称括在
%
中,这样您的代码将是:

IF "%LOCAL_IP%"=="192.168.1.4" (


注意:您在哪里将该环境变量设置为实际值?

我猜
LOCAL\u IP
是一个环境变量,要使用它们,您必须将名称括在
%
中,这样您的代码将是:

IF "%LOCAL_IP%"=="192.168.1.4" (


注意:您在哪里将该环境变量设置为实际值?

每次调用菜单时,我都会将其设置为除终止脚本的函数之外的每个函数返回菜单
for/F“tokens=2 delims=:”(“'ipconfig | findstr IP | findstr 192.”)中的%%i是否设置本地IP=%%i
我意识到获取IP地址的代码是错误的。。我在tokens=2之前添加了
usebackq
,本地_ip变量现在正在获取一个地址。。。现在是故事的转折点,我在if语句中得到了一个无效的语法错误。我还添加了Adriano建议的更改。请发布您的更新代码!提示:移除@echo off,看看会发生什么!第1部分
:@ECHO OFF::更改模拟器或网络连接的静态IP地址:主菜单从菜单中选择选项::设置当前IP地址/f“usebackq tokens=2 delims=:”%%f在(
ipconfig^ | findstr/c:“IPv4地址”
)中设置本地IP=%%f::菜单ECHO。回声。设置工作站……….1回声。设置模拟器…………2回波。退出(无进一步操作)…Q ECHO。选择/c:Q21 ECHO。IF ERRORLEVEL 3 GOTO WORK IF ERRORLEVEL 2 GOTO SIM IF ERRORLEVEL 1 GOTO EOF第2部分:将IP更改为网络设置:如果“%LOCAL_IP%”==“192.168.1.4”(ECHO.您已经处于此模式和GOTO主菜单)则工作,否则(ECHO“设置静态IP信息”和&netsh int IP set address name=“局域网连接”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转到主菜单):设置模拟器ip Address:SIM如果“%Local_ip%”=“192.168.4.1”(echo.您已经处于此模式转到主菜单)ELSEI每次调用菜单时都会设置它,因为除了终止脚本的函数外,每个函数都会返回菜单
for/F“tokens=2 delims=:”(“'ipconfig | findstr IP | findstr 192.”)中的%%i是否设置本地IP=%%i
我意识到获取IP地址的代码是错误的。。我在tokens=2之前添加了
usebackq
,本地_ip变量现在正在获取一个地址。。。现在是故事的转折点,我在if语句中得到了一个无效的语法错误。我还添加了Adriano建议的更改。请发布您的更新代码!提示:移除@echo off,看看会发生什么!第1部分
:@ECHO OFF::更改模拟器或网络连接的静态IP地址:主菜单从菜单中选择选项::设置当前IP地址/f“usebackq tokens=2 delims=:”%%f在(
ipconfig^ | findstr/c:“IPv4地址”
)中设置本地IP=%%f::菜单ECHO。回声。设置工作站……….1回声。设置模拟器…………2回波。退出(无进一步操作)…Q ECHO。选择/c:Q21 ECHO。IF ERRORLEVEL 3 GOTO WORK IF ERRORLEVEL 2 GOTO SIM IF ERRORLEVEL 1 GOTO EOF第2部分:将IP更改为网络设置:如果“%LOCAL_IP%”==“192.168.1.4”(ECHO.您已经处于此模式和GOTO主菜单)则工作,否则(ECHO“设置静态IP信息”和&netsh int IP set address name=“局域网连接”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 main menu)::设置模拟器ip Address:SIM如果“%Local_ip%”=“192.168.4.1”(echo.您已经处于此模式,转到main menu)其他