Windows下批次檔沒有像Linux一樣的Sleep函數進行延時處理,這裡有2種較為實用的方法實現延遲:
1、使用WScirpt的sleep功能,精度0.001秒
建立vbs延遲檔案,然後在批次檔中調用,使用WScript的 sleep函數,實現sleep的效果。
實戰:
1)建立檔案sleep.vbs:
echo WScript.sleep 5000 > sleep.vbs
sleep.vbs 內容如下:
WScript.sleep 5000。
2)在批次檔中調用,建立樣本檔案test.bat,內容如下:
複製代碼 代碼如下:
sc stop OracleOraDb10g_home1TNSListener
Wscript sleep.vbs
sc start OracleOraDb10g_home1TNSListener
2、使用ping 的定時功能,精度1秒
實戰:建立樣本檔案test2.bat,內容如下:
複製代碼 代碼如下:
sc stop OracleOraDb10g_home1TNSListener
ping -n 3 127.0.0.1>nul
sc start OracleOraDb10g_home1TNSListener
說明:3為ping包發送次數,可作為延遲秒數進行使用,需要延遲幾秒就設定幾。
>nul避免螢幕輸出,將輸出輸入到空裝置,因為不需要結果,僅用到其定時功能。
3、還有兩種方法實現Sleep功能
一種是通過連續讀取系統時間,進行比較,達到一定值時退出實現睡眠功能,但該操作應耗用CPU較大,不推薦。
另一種是德國一位哥們的做法,直接用debug方法產生一個定時器程式,該方法可能破壞系統的穩定性,或容易植入病毒(使用他人代碼),亦不推薦使用。
複製代碼 代碼如下:
echo q | debug>nul
echo Bj@jzh`0X-`/PPPPPPa(DE(DM(DO(Dh(Ls(Lu(LX(LeZRR]EEEUYRX2Dx=>sleep.com
echo 0DxFP,0Xx.t0P,=XtGsB4o@$?PIyU WwX0GwUY Wv;ovBX2Gv0ExGIuht6>>sleep.com
echo T}{z~~@GwkBG@OEKcUt`~}@MqqBsy?seHB~_Phxr?@zAB`LrPEyoDt@Cj?>>sleep.com
echo pky_jN@QEKpEt@ij?jySjN@REKpEt@jj?jyGjN@SEKkjtlGuNw?p@pjirz>>sleep.com
echo LFvAURQ?OYLTQ@@?~QCoOL~RDU@?aU?@{QOq?@}IKuNWpe~FpeQFwH?Vkk>>sleep.com
echo _GSqoCvH{OjeOSeIQRmA@KnEFB?p??mcjNne~B?M??QhetLBgBPHexh@e=>>sleep.com
echo EsOgwTLbLK?sFU`?LDOD@@K@xO?SUudA?_FKJ@N?KD@?UA??O}HCQOQ??R>>sleep.com
echo _OQOL?CLA?CEU?_FU?UAQ?UBD?LOC?ORO?UOL?UOD?OOI?UgL?LOR@YUO?>>sleep.com
echo dsmSQswDOR[BQAQ?LUA?_L_oUNUScLOOuLOODUO?UOE@OwH?UOQ?DJTSDM>>sleep.com
echo QTqrK@kcmSULkPcLOOuLOOFUO?hwDTqOsTdbnTQrrDsdFTlnBTm`lThKcT>>sleep.com
echo @dmTkRQSoddTT~?K?OCOQp?o??Gds?wOw?PGAtaCHQvNntQv_w?A?it\EH>>sleep.com
echo {zpQpKGk?Jbs?FqokOH{T?jPvP@IQBDFAN?OHROL?Kj??pd~aN?OHROd?G>>sleep.com
echo Q??PGT~B??OC~?ipO?T?~U?p~cUo0x>>sleep.com
sleep.com>sleep.exe
del sleep.com
以上代碼要使用批處理方式.使用 sleep.exe 10000 時間單位是毫秒
4、從雲棲社區下載sleep.exe檔案
http://www.jb51.net/softs/2466.html