Board logo

标题: 批处理怎样每间隔一段时间运行另外的批处理? [打印本页]

作者: ny350101    时间: 2011-3-17 01:11     标题: 批处理怎样每间隔一段时间运行另外的批处理?

  1. rd %systemroot%\TEMP /S/Q
  2. md %systemroot%\TEMP
  3. rd "%USERPROFILE%\Local Settings\Temp" /S/Q
  4. md "%USERPROFILE%\Local Settings\Temp"
复制代码
这是一个清空TEMP的批处理,问题是如何写一个批处理,能够每个1个小时就运行一次。
作者: weichenxiehou    时间: 2011-3-17 09:27

如果楼主用的是xp、vista或win7等带有schtasks.exe命令(创建计划任务)的系统,要完成以上功能,在命令提示符下输入一条命令足矣,不过要以管理员身份运行cmd。
假设你这个批处理文件为deltemp.bat,放在f:\test目录下,可以这样输入:
  1. schtasks /tn deltemp /tr f:\test\deltemp.bat /sc hourly
复制代码

创建完成后系统会以当前本地时间为起点,每一个小时运行一次deltemp.bat
/tn deltemp--创建的任务名称为deltemp,如果有空格要用引号括起来
/tr f:\test\deltemp.bat--要运行的文件的路径和文件名,如果有空格要用引号括起来
/sc hourly--任务类型为小时重复
如果要删除该计划任务,可以输入:
  1. schtasks /delete /tn deltemp
复制代码

当然如果楼主想点击一次批处理后开始每一小时运行一次,可以把这条命令放到批处理文件内,不过就要一直运行着,未免麻烦,可以考虑用/st /et /sd /ed等开关,具体请参见schtasks /?,如有疑问,可以跟帖追问。

[ 本帖最后由 weichenxiehou 于 2011-3-17 09:28 编辑 ]
作者: wc726842270    时间: 2011-3-17 09:48     标题: 回复 2楼 的帖子

少个参数吧……。
作者: Hello123World    时间: 2011-3-17 12:51

  1. @echo off
  2. :hello
  3. rd %systemroot%\TEMP /S/Q
  4. md %systemroot%\TEMP
  5. rd "%USERPROFILE%\Local Settings\Temp" /S/Q
  6. md "%USERPROFILE%\Local Settings\Temp"
  7. ping 127.1 /n 3600  >nul
  8. goto hello
  9. rem 这样可以解决,但是批处理要一直开着
复制代码

作者: ny350101    时间: 2011-3-17 15:16

谢谢4楼的,实际上这个就是我想要的。同时也谢谢weichenxiehou。为什么运行后是这个样子?
作者: weichenxiehou    时间: 2011-3-18 21:37     标题: 回复 5楼 的帖子

应该不是添加任务计划这条命令的故障,都涉及到temp文件夹了,应该是你的批处理的问题。
作者: hanyeguxing    时间: 2011-3-18 22:01     标题: 回复 5楼 的帖子

1:因为rd没有正常执行,所以md执行产生冲突
在md和rd前分别都加2 >nul
2:除非特殊原因,否则推荐任务计划从控制面板添加
3:提供系统的版本,以及任务计划的运行帐户等信息

[ 本帖最后由 hanyeguxing 于 2011-3-18 22:04 编辑 ]
作者: ny350101    时间: 2011-3-19 22:58

7# hanyeguxing 7楼说的对,是原批处理出错了。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2