IF ... ELSE语句不返回命令的结果,没有IF ... ELSE

时间:2017-09-09 16:05:00

标签: batch-file

为什么此Windows批处理不起作用:

@ECHO OFF
SET PATH="%PROGRAMFILES(x86)%\PuTTY";%PATH%
SET sti=%TEMP%\ipinfo_c200.txt
plink >nul 2>nul
IF %ERRORLEVEL% NEQ 9009 (
    plink -ssh 192.168.1.101 -l root "wget -qO - http://ipinfo.io/ip" >%sti%
    SET /P vpn=<%sti%
    Del /F /Q %sti%
    start "" http://%vpn%:8888/speedtest
) ELSE (
    Echo Command plink does not exist. Install PuTTY.
)
EXIT

如果这样可以正常工作:

@ECHO OFF
SET PATH="%PROGRAMFILES(x86)%\PuTTY";%PATH%
SET sti=%TEMP%\ipinfo_c200.txt
plink -ssh 192.168.1.101 -l root "wget -qO - http://ipinfo.io/ip" >%sti%
SET /P vpn=<%sti%
Del /F /Q %sti%
start "" http://%vpn%:8888/speedtest
EXIT

唯一不同的是IF ...... ELSE。

在IF语句中工作时,命令plink不返回IP地址。

如果我将SET sti =语句放在IF语句中,我会收到意外错误。

我缺少什么(可能是基本的东西)?

谢谢,

0 个答案:

没有答案