bat批处理延迟运行脚本
@echo off
:aaa
pause 這里是你需要運(yùn)行的程序
for /l %%i in (0,1,10000) do echo %%i>nul
goto aaa
當(dāng)然bat延遲運(yùn)行還有其他的一些方法 不過(guò)我這個(gè)算很簡(jiǎn)單了 你還可以使用兩個(gè)for代替goto
for /l %%i in (0,1,10000) do echo %%i>nul 這里>nul忽略輸出
如果程序是無(wú)法自動(dòng)回到cmd界面的那可能需要結(jié)束她的進(jìn)程什么的 自然利用bat調(diào)用其他程序也能做到例如ntsd debug 等等 或者是vbs 不過(guò)那就顯不出bat的特性出來(lái)了
ping延時(shí)還是很精確的,呵呵。
@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代碼中調(diào)用了Sleep(1000),自然是很準(zhǔn)確的。
ping的IP最好用127.0.0.1,因?yàn)橛闷渌刂?#xff0c;第一次DNS解析會(huì)耗費(fèi)一些時(shí)間,就不準(zhǔn)確了。
收東西要收藏。我?guī)蜆堑母魑淮髠b整理一下:
@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
============================================
為了提高工作效率,或者為了實(shí)現(xiàn)某種目的,我們經(jīng)常需要將一些程序加入到windows的“啟動(dòng)”組中,也就是讓這些程序隨系統(tǒng)啟動(dòng)而自動(dòng)運(yùn)行。有時(shí),我們希望這些自啟動(dòng)程序能按一定的先后順序運(yùn)行,對(duì)于服務(wù)器而言,可能有其中一個(gè)程序要依賴(lài)另一程序才能運(yùn)行,因而還需要在這二個(gè)程序啟動(dòng)時(shí)有一定的時(shí)間延遲。
我發(fā)現(xiàn),可以巧妙利用DOS下的批處理命令,來(lái)輕松控制自啟動(dòng)程序的運(yùn)行先后順利,以及程序的延遲運(yùn)行。舉例說(shuō)明,假如有三個(gè)自啟動(dòng)程序,要求在windows啟動(dòng)時(shí)先運(yùn)行C:\Patha\A.exe,等其執(zhí)行完畢了再運(yùn)行C:\Pathb\B.exe,至少延遲10秒后再運(yùn)行C:\Pathc\C.exe,實(shí)現(xiàn)方法如下:
打開(kāi)“記事本”,輸入以下代碼:
Start/w C:\Patha\A.exe
Start C:\Patha\B.exe
Ping 127.0.0.1 –n 10 >nul
Start C:\Patha\C.exe
將此文件保存為一個(gè)bat文件,例如qidong.bat。雙擊運(yùn)行這個(gè)批處理文件,就可即刻驗(yàn)證各程序的啟動(dòng)順序和延遲運(yùn)行情況。最后將此文件拖入windows的“啟動(dòng)”組就OK了。當(dāng)然,三個(gè)自啟動(dòng)文件是靠批處理文件來(lái)調(diào)用的,所以就不必放入“啟動(dòng)”組了。
對(duì)于上述批處理命令,作一下簡(jiǎn)單的介紹:
Start命令用于啟動(dòng)指定程序,其格式是:“start/參數(shù) 程序的完整路徑和文件名”,參數(shù)/w的作用是等待當(dāng)前的程序執(zhí)行完畢再執(zhí)行下一個(gè)程序。注意:由于批處理是在DOS下運(yùn)行,類(lèi)似“C:\ \Program files”這樣帶空格的文件夾名稱(chēng),應(yīng)該換成“C:\Progra~1”,即取前6個(gè)字符再加上“~1”。
因?yàn)榕幚碇袥](méi)有延時(shí)的命令,所以用ping一個(gè)本地IP地址來(lái)間接實(shí)現(xiàn)延時(shí),ping一次大概花費(fèi)1秒鐘,雖然時(shí)間不是很精確,但可修改-n后面的數(shù)字進(jìn)行調(diào)試,使時(shí)間盡量接近,>nul的作用相當(dāng)于是讓ping命令在后臺(tái)運(yùn)行。
==============================================
一。利用計(jì)劃任務(wù)
例:
@echo off
mode con lines=25
title 定時(shí)關(guān)機(jī)
color 1f
cls
echo.
echo.
echo.
echo.
echo 時(shí)間使用24小時(shí)制(如2:15、12:00),可以輸入多個(gè)時(shí)間點(diǎn)
echo.
echo 多個(gè)時(shí)間點(diǎn)用空格分隔
echo.
echo.
echo ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
echo.
set times=
set /p times= 請(qǐng)輸入關(guān)機(jī)時(shí)間:
:: 以下語(yǔ)句實(shí)現(xiàn)每個(gè)星期的每一天指定時(shí)間關(guān)機(jī)
:: 如果要換成每個(gè)月的某幾天,請(qǐng)改字母為數(shù)字,并用逗號(hào)分隔
:: 以下代碼沒(méi)有錯(cuò)誤檢測(cè)語(yǔ)句,輸入時(shí)間的時(shí)候務(wù)必按照指定格式輸入
:: 可以用在CMD窗口用at命令來(lái)查看計(jì)劃任務(wù)
if not "%times%"=="" for %%i in (%times%) do (
at %%i /every:M,T,W,Th,F,S,Su shutdown -s
)
二。巧妙利用ping -n
例:
@ rem ---------- 設(shè)置延遲時(shí)間 ----------?
@ set 延遲時(shí)間=15
@ ping 127.0.0.1 -n %延遲時(shí)間%
以下寫(xiě)你要啟動(dòng)的命令
三。利用for命令
例:
@echo off
echo 將于4月20日?qǐng)?zhí)行關(guān)機(jī)任務(wù)
: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
轉(zhuǎn)載于:https://www.cnblogs.com/hdk1993/p/6664722.html
總結(jié)
以上是生活随笔為你收集整理的bat批处理延迟运行脚本的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: CentOS 7 系列(四)系统服务配置
- 下一篇: webpack2.x基础属性讲解(二)