可以在BAT批处理中建立定时执行程序吗

可以在BAT批处理中建立定时执行程序吗,第1张

可以,就像楼上说的。

不过看你这么问应该不知道at 或者 schtasks命令,建议直接用计划任务,如果你是win8以下的话,可以试试下面这段,当然需要你自己写处理文件。

… … 【 … 华 … 丽 … 分 … 界 … 线】 … … …

@echo off&title 设置定时计划

color 8F

:yn0

echo 选择

echo 【A】设置定时计划

echo 【B】显示定时计划

echo 【C】取消定时计划

echo 【D】退出

set /p yn=请输入选择后回车确认:

echo 您输入为"%yn%"。

ping 0 -n "2">nul

if /i "%yn%"=="A" goto yn1

if /i "%yn%"=="B" goto yn2

if /i "%yn%"=="C" goto yn3

if /i "%yn%"=="D" goto :eof

goto note1

:note1

echo ---------------------

echo 别闹,请输入A、B、C或D

echo.

set /p yn=请输入选择后回车确认:

if /i "%yn%"=="A" goto yn1

if /i "%yn%"=="B" goto yn1

if /i "%yn%"=="C" goto yn1

if /i "%yn%"=="D" goto :eof

goto note1

:yn1

echo 【A】设置定时计划

echo 【1】 at 12:31 do ( ping 127.1 -t) ::此处输入说明1

echo 【2】 at 12:32 do ( ping 127.1 -t) ::此处输入说明2

echo 【3】 at 12:33 do ( ping 127.1 -t) ::此处输入说明3

echo 【0】 返回菜单

set /p y1=请输入选择后回车确认:

if /i "%y1%"=="1" at 12:31 ping 127.1 -t ::此处输入at命令1

if /i "%y1%"=="2" at 12:32 ping 127.1 -t ::此处输入at命令2

if /i "%y1%"=="3" ping 127.1 -t::此处输入at命令3

if /i "%y1%"=="0" goto yn0

:yn2

atq

pause

goto yn0

:yn3

echo 输入需要删除的任务编号 按【0】 返回菜单

set /枝锋p yn3=请输入选择后羡物回车兄搭液确认:

if /i "%y3%"=="0" goto yn0

atrm %y3% ::删除计划任务1

goto yn0

… … 【 … 华 … 丽 … 分 … 界 … 线】 … … …

大概就这样,核心内容是 yn1 那一段,win10 不能用at,请对应替换为schtasks命令。

如【schtasks /create /tn "task01" /tr "cmd /c ping 127.1 -t” /sc daily /st 12:31】

不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记慎唯事本汪厅,另存为困孝隐xx.bat,编码选ANSI

/*&cls&echo off

rem 间歇性重启/重新运行一个指定bat

set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4

title %#% +%$%%$%/%@% %z%

set sleep=3600

set "file=C:\Users\Administrator\Desktop\xxx.bat"

if not exist "%file%" (echo"%file%" 未找到&pause&exit)

type "%~f0"|cscript -nologo -e:jscript "%~f0">"%tmp%\v.v"

:loop

for /f "delims=" %%a in ("%file%") do (

cd /d "%%~dpa"

start "" "%%~nxa"

set "name=%%~nxa"

)

timeout /t %sleep% /nobreak

for /f %%a in ('cscript -nologo -e:vbscript "%tmp%\v.v" "%~0" "%name%"') do taskkill /f /pid %%a /t

goto loop

pause

exit

*/

var text=WSH.StdIn.ReadAll()

var vbs=text.match(/\/\*\r\n([\s\S]+)\*\/\s*$/)

WSH.echo(vbs[1])

/*

Set wmi=GetObject("winmgmts://./root/CIMV2")

Set query=wmi.ExecQuery(StrReverse("=emaN erehW ssecorP_23niW morf * tceleS") &"'cmd.exe'")

For Each q In query

If InStr(1,q.CommandLine,WSH.Arguments(0),1) = 0 Then

If InStr(1,q.CommandLine,WSH.Arguments(1),1) >0 Then

WSH.echo q.ProcessId

End If

End If

Next

*/

一个就够了,添加到启动项.有窗口.动态显示时间.按任意键取消.如果你不想看到系统d出的那个关机对话框的话我派宽坦可以把它去掉.

@echo off

if not "%~1"=="" goto %~1

at 23:20 /interactive "%~0" shutdown

exit

:shutdown

start "" /b %0 cancle

color b

mode con: cols=45 lines=25

set "t=120"尘桐

title 定时自动关机程序

echo wscript.sleep 5000>sleep.vbs

start "" /b shutdown.exe -s -t 120

:show

cls

echo.

echo. =============================

echo. 定时自动关机程序

echo. =============================

echo. --------------------------------------------

echo. 系统将在%t%秒后巧雹关机,请保存所有工作然后退出....

echo. --------------------------------------------

echo. 或者按任意键取消关机....

sleep.vbs

set /a t-=5

if %t% geq 0 goto show

exit

:cancle

pause>nul

shutdown.exe -a

del sleep.vbs

exit


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12405441.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存