2011-03-24 31 views
3

我有一個運行幾個.cmd文件的批處理文件。我想知道是否有可能在運行最後一個之前等待60秒左右。是否可以在批處理文件中發出等待命令?

感謝

+0

[如何在批處理腳本中等待](http:// stackoverflow。com/questions/735285 /如何在批處理腳本中等待) – Helen 2011-03-24 19:47:59

+0

^可能重複某人手上有太多時間 – 2011-03-25 13:51:51

回答

1

一個快速谷歌搜索想出了這個答案...

PING 1.1.1.1 -N 1 -w 30000> NUL

它會嘗試和ping直到超時(30000ms)

+1

這是導致超時最迂迴的方法。 – 2011-03-24 13:35:48

+0

夠公平的,我不是一個批處理腳本專家,我只是讀了這個......「我被告知,windows.bat文件沒有睡眠或等待命令」在博客上。看起來TIMEOUT是一個Windows 7命令。 – BenCr 2011-03-24 13:40:10

+0

閱讀其他答案,看起來他們需要下載,如果它的託管服務器可能不可用。你介意不要低調回答我的答案嗎?無論您認爲這是您最喜歡的方法,它都會達到結果。 – BenCr 2011-03-24 13:42:51

4

可以使用timeout [seconds]timeout 60

+0

或睡眠或等待 – 2011-03-24 13:37:24

+1

它只是說超時無法識別超時/ t 40 – 2011-03-24 13:41:34

+0

您使用的操作系統是什麼?這可以在Win 7上正常工作 - 您可能需要下載資源工具包,如其他文章中針對舊版操作系統的建議 – BrokenGlass 2011-03-24 13:43:06

1

PING 127.0.0.1 -n 61

該做些什麼是ping電腦本身,它會一直回覆瞬間之間,ping之間的時間爲1秒,第一次ping可以立即進行,所以只需要添加多少秒鐘就可以發送ping的次數+1。在這種情況下,它將等待60秒。

+0

這將適用於所有版本的Windows,一些較舊的版本(例如xp)沒有特定的超時/休眠程序 – Trent 2011-03-24 13:44:34

4

另一個「解決方法」是通過使用choice命令被更好地支撐在各個窗口/ DOS OS-ES:

choice /c a /t 10 /d a > nul 

將導致10秒的暫停,而沒有將在屏幕上可以看到。

1

如果您更喜歡純粹的cmd腳本,請使用以下幾段代碼。

首先,此代碼片段以秒爲單位返回當前時間。

:gettime 
set hh=%time:~0,2% 
set mm=%time:~3,2% 
set ss=%time:~6,2% 
set cc=%time:~-2% 
set /A %1=hh*360000+mm*6000+ss*100+cc 
goto :eof 

然後,您可以使用它來構建像這樣的等待循環。

:wait 
call :gettime wait0 
:w2 
call :gettime wait1 
set /A waitt = wait1-wait0 
if !waitt! lss %1 goto :w2 
goto :eof 

,最後,把所有拼在一起,你必須使用

@echo off 
setlocal enableextensions enabledelayedexpansion 

call :gettime t1 
echo %t1% 
call :wait %1 
call :gettime t2 
echo %t2% 
set /A tt = (t2-t1)/100 
echo %tt% 
goto :eof 

:wait 
call :gettime wait0 
:w2 
call :gettime wait1 
set /A waitt = wait1-wait0 
if !waitt! lss %1 goto :w2 
goto :eof 

:gettime 
set hh=%time:~0,2% 
set mm=%time:~3,2% 
set ss=%time:~6,2% 
set cc=%time:~-2% 
set /A %1=hh*360000+mm*6000+ss*100+cc 
goto :eof 

對於這裏使用的命令的詳細描述的這個例子中,檢查HELP SETHELP CALL信息。

0

太棒了!所以這是一個正確的解決方案,finnaly。 只是一個細節,如果您在本地化操作系統上使用它,請確保您的「DELIMS」設置適合。 例如,使用「DELIMS =:」而不是「DELIMS =:」。爲捷克本地化。

相關問題