中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » at命令调用结束进程的bat为什么会失败
作者:
标题: at命令调用结束进程的bat为什么会失败 上一主题 | 下一主题
zerocq
中级用户




积分 458
发帖 196
注册 2006-10-5
状态 离线
『楼 主』:  at命令调用结束进程的bat为什么会失败

这是bat文件的代码

shutdown -s -t 300
for /f "tokens=1-5" %%a in ('tasklist /v /fi "imagename eq my.exe"^|find "11601179"^|^|goto :eof') do @tskill %%b

查找所有my进程中标题包含指定字符的进程pid,然后结束进程

在at命令下为什么无法无法结束进程,第一句shutdown命令是我临时加上去测试的

at命令下可以正常调用shutdown,第二句就不行

在命令提示符下运行这个bat文件可以正常结束进程

2008-4-10 12:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zerocq
中级用户




积分 458
发帖 196
注册 2006-10-5
状态 离线
『第 2 楼』:  

没人帮忙么???

2008-4-10 16:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bigfaint
初级用户





积分 70
发帖 30
注册 2008-1-17
状态 离线
『第 3 楼』:  

恩,没有试过,我感觉应该跟执行计划任务的用户有关。at是用system执行的,你把第二行改一下,把tasklist echo出来,看看有没有不同。

2008-4-10 17:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zerocq
中级用户




积分 458
发帖 196
注册 2006-10-5
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by bigfaint at 2008-4-10 17:07:
恩,没有试过,我感觉应该跟执行计划任务的用户有关。at是用system执行的,你把第二行改一下,把tasklist echo出来,看看有没有不同。

我尝试echo %b>某个文件,但系统在指定时间执行后全盘都没有找到这个生成的文件

好奇怪


2008-4-11 00:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 5 楼』:  

at命令创建的计划任务会以SYSTEM用户的身份来执行,不知道为什么不能杀死指定进程,期待高人解答。

变通的方法是用schtasks创建一个以当前用户身份来执行的计划任务:
schtasks /create /ru "%username%" /sc daily /mo 1 /tn MyTask /tr C:\test\test.bat

如果想自动输入密码(假设密码是abcdefg),可以用echo:
echo abcdefg|schtasks /create /ru "%username%" /sc daily /mo 1 /tn MyTask /tr C:\test\test.bat

另外,杀死指定进程其实不用你写的那么复杂,taskkill命令足矣:
taskkill /fi "windowtitle eq 11601179*"

2008-4-11 06:30
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: