2014-02-11 40 views
2

我嘗試下面的代碼:批處理文件,如果存在超時

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

但是,當他們找不到\\computername\c$時間超過20秒超時。我如何在代碼中創建更短的超時時間?

+0

你想有一個超時或您有不必要的超時? – npocmaka

+0

我試圖根據我想你想問的問題來澄清問題。如果我猜錯了,請編輯這個問題以更好地突出你想要完成的事情。 –

回答

2

看看是否解決您的問題:

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 
+0

謝謝你的回答。我會嘗試。它保存了很多時間。 – Tom

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 

如果遠程計算機存在不檢查...

+0

謝謝你的回答。我會嘗試。 – Tom