我尝试了以下代码:
if exist "\\%1\c$\users\Public\" (
set sysos=Windows 7
) else (
set sysos=Windows XP
)
但是当他们找不到\\computername\c$
时,超时需要20秒以上。如何在代码中创建更短的超时?
答案 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
不检查远程机器是否存在......