@echo off
:aaa
pause 這里是你需要運行的程序
for /l %%i in (0,1,10000) do echo %%i>nul
goto aaa
當然bat延遲運行還有其他的一些方法 不過我這個算很簡單了 你還可以使用兩個for代替goto
for /l %%i in (0,1,10000) do echo %%i>nul 這里>nul忽略輸出
如果程序是無法自動回到cmd界面的那可能需要結束她的進程什么的 自然利用bat調用其他程序也能做到例如ntsd debug 等等 或者是vbs 不過那就顯不出bat的特性出來了
ping延時還是很精確的,呵呵。
@echo off
:aaa
echo %TIME%
ping 0.0.0.1 -n 1 -w 500>nul
goto aaa
I:\>delay
18:51:41.50
18:51:42.42
18:51:43.42
18:51:44.42
18:51:45.42
18:51:46.42
18:51:47.42
18:51:48.42
18:51:49.42
18:51:50.42
18:51:51.42
18:51:52.42
18:51:53.42
18:51:54.42
18:51:55.42
18:51:56.42
^C終止批處理操作嗎(Y/N)? y
Windows的ping.exe代碼中調用了Sleep(1000),自然是很准確的。
ping的IP最好用127.0.0.1,因為用其他地址,第一次DNS解析會耗費一些時間,就不准確了。
收東西要收藏。我幫樓的各位大俠整理一下:
@echo off
@echo %time%
@set /a netu0=%1+1
@ping 127.0.0.1 -n %netu0% -w 500>nul 2>nul
@echo %time%
@echo on
============================================
為了提高工作效率,或者為了實現某種目的,我們經常需要將一些程序加入到windows的“啟動”組中,也就是讓這些程序隨系統啟動而自動運行。有時,我們希望這些自啟動程序能按一定的先后順序運行,對於服務器而言,可能有其中一個程序要依賴另一程序才能運行,因而還需要在這二個程序啟動時有一定的時間延遲。
我發現,可以巧妙利用DOS下的批處理命令,來輕松控制自啟動程序的運行先后順利,以及程序的延遲運行。舉例說明,假如有三個自啟動程序,要求在windows啟動時先運行C:\Patha\A.exe,等其執行完畢了再運行C:\Pathb\B.exe,至少延遲10秒后再運行C:\Pathc\C.exe,實現方法如下:
打開“記事本”,輸入以下代碼:
Start/w C:\Patha\A.exe
Start C:\Patha\B.exe
Ping 127.0.0.1 –n 10 >nul
Start C:\Patha\C.exe
將此文件保存為一個bat文件,例如qidong.bat。雙擊運行這個批處理文件,就可即刻驗證各程序的啟動順序和延遲運行情況。最后將此文件拖入windows的“啟動”組就OK了。當然,三個自啟動文件是靠批處理文件來調用的,所以就不必放入“啟動”組了。
對於上述批處理命令,作一下簡單的介紹:
Start命令用於啟動指定程序,其格式是:“start/參數 程序的完整路徑和文件名”,參數/w的作用是等待當前的程序執行完畢再執行下一個程序。注意:由於批處理是在DOS下運行,類似“C:\ \Program files”這樣帶空格的文件夾名稱,應該換成“C:\Progra~1”,即取前6個字符再加上“~1”。
因為批處理中沒有延時的命令,所以用ping一個本地IP地址來間接實現延時,ping一次大概花費1秒鍾,雖然時間不是很精確,但可修改-n后面的數字進行調試,使時間盡量接近,>nul的作用相當於是讓ping命令在后台運行。
==============================================
一。利用計划任務
例:
@echo off
mode con lines=25
title 定時關機
color 1f
cls
echo.
echo.
echo.
echo.
echo 時間使用24小時制(如2:15、12:00),可以輸入多個時間點
echo.
echo 多個時間點用空格分隔
echo.
echo.
echo ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
echo.
set times=
set /p times= 請輸入關機時間:
:: 以下語句實現每個星期的每一天指定時間關機
:: 如果要換成每個月的某幾天,請改字母為數字,並用逗號分隔
:: 以下代碼沒有錯誤檢測語句,輸入時間的時候務必按照指定格式輸入
:: 可以用在CMD窗口用at命令來查看計划任務
if not "%times%"=="" for %%i in (%times%) do (
at %%i /every:M,T,W,Th,F,S,Su shutdown -s
)
二。巧妙利用ping -n
例:
@ rem ---------- 設置延遲時間 ----------
@ set 延遲時間=15
@ ping 127.0.0.1 -n %延遲時間%
以下寫你要啟動的命令
三。利用for命令
例:
@echo off
echo 將於4月20日執行關機任務
:xunhuan
echo %date%>1.ini
for /f "tokens=2,3 delims=- " %%a in (1.ini) do set h=%%a & set m=%%b
del 1.ini
if %h%==04 goto fen
goto xunhuan
:fen
if %m%==05 goto nao
goto xunhuan
:nao
shutdown -s -t 60
exit