批处理文件如果存在超时

时间:2014-02-11 13:31:22

标签: batch-file

我尝试了以下代码:

if exist "\\%1\c$\users\Public\" (
set sysos=Windows 7
) else (
set sysos=Windows XP
)

但是当他们找不到\\computername\c$时,超时需要20秒以上。如何在代码中创建更短的超时?

2 个答案:

答案 0 :(得分:3)

看看这是否解决了您的问题:

set "sysos="
ping -n 1 %1 >nul && if exist "\\%1\c$\users\Public\" (
      set sysos=Windows 7
   ) else (
      set sysos=Windows XP
   )
if not defined sysos echo %1 server is offline

答案 1 :(得分:2)

可以使用WMIC命令更快地运行吗?

@echo off
setlocal

for /f  delims^= %%a in ('wmic /node:%~1 os get version /format:Wmiclivalueformat') do (
    for /f %%O in ("%%~a") do set "%%O"

)
set /a version=%version:.=%

if %version% LSS 620000 if %version% GEQ 610000(
    set "sysos=Windows 7"
)

if %version% LEQ 520000 if %version% GEQ 510000(
    set "sysos=Windows XP"
)

echo %sysos%
endlocal

不检查远程机器是否存在......