【发布时间】:2015-01-18 19:35:13
【问题描述】:
这是我批次的一部分...
for /f "delims=" %%i in ('C:\pathto\dig.exe www.example.com @8.8.8.8 +short') do set RIP=%%i
If %RIP%==93.184.216.119 (
ECHO - PASS >> results-file.txt
) else (
ECHO - FAIL >> results-file.txt
)
...这工作正常 - 除了,假设 DNS 服务器 8.8.8.8 不可用或损坏(因此为了测试用错误的 IP 替换它)然后,通常从命令行 dig.exe 将超时并且最终归来……
;; connection timed out; no servers could be reached
...然后返回命令提示符。所以我希望该字符串在 %RIP% 中设置,因此 FAIL 将被打印到文件中,但是发生的情况是 dig.exe 运行、超时,然后 cmd.exe 刚刚关闭,并且没有任何内容写入文件,并且该批次的其余部分不会继续。
知道我哪里出错了吗?
【问题讨论】:
-
使用引号。
set "RIP=%%~i"。If "%RIP%"=="93.184.216.119" (。我想这就是问题所在。 -
感谢您的帮助,这很有效 - 非常感谢!
标签: windows batch-file dig