Batch file 批处理文件(如果存在)超时

Batch file 批处理文件(如果存在)超时,batch-file,Batch File,我尝试了以下代码: if exist "\\%1\c$\users\Public\" ( set sysos=Windows 7 ) else ( set sysos=Windows XP ) 但是当他们找不到\\computername\c$时,超时需要20秒以上。如何在代码中创建较短的超时时间?可能使用WMIC命令,它会工作得更快 @echo off setlocal for /f delims^= %%a in ('wmic /node:%~1 os get version /for

我尝试了以下代码:

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

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

可能使用
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

不检查远程计算机是否存在…

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

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

你想暂停还是有不想要的暂停?我试着根据我认为你想问的问题来澄清这个问题。如果我猜错了,请编辑问题,以更好地突出你想要完成的。谢谢你的回答。我会试试的。谢谢你的回答。我试试看。它节省了很多时间,非常有用!
和&
的解释: