为什么这个批处理文件不起作用?

时间:2015-09-22 18:29:49

标签: batch-file

getDataInBackgroundWithBlock

为什么此批处理文件无法正常工作?

1 个答案:

答案 0 :(得分:1)

@echo off
set /p host=
set "ttl="
for /f "delims==< tokens=4" %%b in ('
    ping "%host%" -4 -n 1 ^| findstr /I "TTL"
') do (set /A "ttl=%%b")
if defined ttl (
  if %ttl% GTR 64 (
     echo operating system: Windows - ttl=%ttl%
  ) else (
     echo operating system:   linux - ttl=%ttl%
  )
) else echo unknown "%host%" host

的变化:

  • set "ttl="清空/删除ttl变量,请参阅下一个if defined ttl;
  • ping "%host%" -4 -n 1
    • "%host%"按照目前的记录,%host%可评估为空字符串,ping ""结果为ping "%COMPUTERNAME%";
    • -4强制IPv4 ping ""默认为IPv6;
  • findstr /I "TTL"可能Reply from a.b.c.d: Destination host unreachable;
  • set /A "ttl=%%b"进行下一次比较;
  • if %ttl% GTR 64(尝试结果:'' GTR "64" false '1' GTR "64" true 等。);
  • if defined ttl