[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

批处理怎样用计划任务定时执行文件?

  1. set /p t=
  2. for /l %%I in (1 1 4) do (
  3. set b=%t:~-2%
  4. set /a f=%b%+1
  5. set s=%t:~0,2%
  6. set t=%s%:%f%
  7. call :a
  8. )
  9. :a
  10. at %t% /interactive   "C:\Program Files\TTPlayer\TTPlayer.exe"
复制代码
请问我这个代码有什么不对的地方吗 怎么不能正常执行呢

LZ如果对此感兴趣的话可以学一下SCHTASKS命令
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

  1. @echo off
  2. echo 时间格式:23:09
  3. set /p t=请输入时间:
  4. at %t% /interactive   "C:\Program Files\TTPlayer\TTPlayer.exe"
  5. ::一个本来人很容易看懂的功能,被写成一个连鬼都看不懂的代码
  6. pause>nul
复制代码

TOP

3L  看来你还是没看明白啊 我要实现的功能是间隔一定时间 就定时执行特定功能  你怎么把时间就锁定在23:09了啊 ? 对了 at命令后面不是有/interactive这个吗 ? 这个我知道 但有时在其后面还有cmd.exe 是否可省略 其意义何在 请教

TOP

1,任务计划推荐从控制面板的“任务计划”中直接创建。
2,如果想用命令完成,推荐使用 Schtasks 。
推荐从图形界面创建,因为 at 过于简单,而 Schtasks 不支持“仅在登陆后运行”,即跳过帐户密码设置一问题...同时,图形界面的“任务计划”更加强大。
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

我就想问我的代码是什么原因不能顺利执行 请教诸位

TOP

我不知道楼主想干嘛
C:\Documents and Settings\Administrator\桌面>echo on

C:\Documents and Settings\Administrator\桌面>set /p t=
11:50

C:\Documents and Settings\Administrator\桌面>for /L %I in (1 1 4) do (
set b=50
set /a f=+1
set s=11
set t=:
call :a
)

C:\Documents and Settings\Administrator\桌面>(
set b=50
set /a f=+1
set s=11
set t=:
call :a
)

C:\Documents and Settings\Administrator\桌面>echo :
:

C:\Documents and Settings\Administrator\桌面>(
set b=50
set /a f=+1
set s=11
set t=:
call :a
)

C:\Documents and Settings\Administrator\桌面>echo :
:

C:\Documents and Settings\Administrator\桌面>(
set b=50
set /a f=+1
set s=11
set t=:
call :a
)

C:\Documents and Settings\Administrator\桌面>echo :
:

C:\Documents and Settings\Administrator\桌面>(
set b=50
set /a f=+1
set s=11
set t=:
call :a
)

C:\Documents and Settings\Administrator\桌面>echo :
:

C:\Documents and Settings\Administrator\桌面>pause
请按任意键继续. . .



中间的for是干嘛的、、讲述一下、、最后就提取了个冒号、、

TOP

输入时间 如12:00 然后时间在for循环中循环四次 执行时间自增功能  变成 12:01 12:02 12:03 12:04 然后用at在这四个时间执行 打开播放器的功能

TOP

额、、那你这么写也不对啊、、我来改下

TOP

好啊  帮我改下 顺便请教 我的代码错在哪里呢 实在想不明白啊

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p t=时间格式(00:00):
  4. for /l %%I in (1 1 4) do (
  5. if !b! lss 10 (set b=!t:~-1!) else set b=!t:~-2!
  6.    set s=!t:~0,2!
  7.    set /a b+=1
  8.    if !b! lss 10 (
  9.    set t=!s!:0!b!
  10.    call :a
  11. ) else (
  12.    set t=!s!:!b!
  13.    call :a
  14. )
  15. )
  16. pause
  17. :a
  18. echo !t!
复制代码
不按格式输入会出错。我也没怎么改、、

貌似代码冗长麻烦啊、、嘿嘿、学艺不精、、

TOP

1.你应该用变量延迟、、

2.你的那个加法实在不好用,不要新定义变量,直接把b+=1即可。。

3.当09时+=1就是1了、所以我加了if判断是否小于10,如果看不懂这段话直接忽略,以后你会碰到的^_^

TOP

本帖最后由 hanyeguxing 于 2011-8-11 16:09 编辑

回复 11# canyuexiaolang


    时间运算要注意10进制、12进制、24进制、60进制的问题。

回复 10# er8852973


    你的代码从设计思路上就有问题,必须重新设计,详细代码如下。


回复 10# er8852973


    代码如下:
  1. @echo off&setlocal enabledelayedexpansion
  2. set/p t=请输入24小时制时间,例如00:08:
  3. set/a t=1%t:~0,2%*60+1%t:~-2%-6100
  4. for /l %%a in (1 1 4) do (
  5.     set/a t+=1,s=100+t/60%%24,f=100+t%%60
  6.     at !s:~-2!:!f:~-2! /interactive "%ProgramFiles%\TTPlayer\TTPlayer.exe"
  7. )
复制代码
或:
  1. @echo off&setlocal enabledelayedexpansion
  2. set/p t=请输入24小时制时间,例如00:08:
  3. for /l %%a in (1 1 4) do (
  4.     set/a t=1%t:~0,2%*60+1%t:~-2%-6100+1*%%a,s=100+t/60%%24,f=100+t%%60
  5.     at !s:~-2!:!f:~-2! /interactive "%ProgramFiles%\TTPlayer\TTPlayer.exe"
  6. )
复制代码
1,t+=1 或 1*%%a 每次时间+1分钟
2,注意:当时间超过24小时,则自动减24小时。如果不需要此功能,则去掉 %%24
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

回复 13# hanyeguxing


    谢谢指教 不过我的在设计上是可以执行的 不知道13L说我的代码设计思路不对是指哪里不对 我的代码忘了加延迟变量而已 加上@echo off&setlocal enabledelayedexpansion变可以执行了{ for循环中%号变成!号 }  我的思路是通过字符截取对时间进行计算 而13L是将其转换成进制数字 既将小时和分钟同一成分钟数

TOP

回复 11# canyuexiaolang


    感谢  11L 你很谦虚

TOP

返回列表