中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-08 00:36
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » at命令调用结束进程的bat为什么会失败 查看 961 回复 4
楼 主 at命令调用结束进程的bat为什么会失败 发表于 2008-04-10 12:37 ·  中国 浙江 温州 电信
中级用户
★★
积分 458
发帖 196
注册 2006-10-05 12:04
19年会员
UID 64614
状态 离线
这是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文件可以正常结束进程
2 发表于 2008-04-10 16:58 ·  中国 浙江 温州 电信
中级用户
★★
积分 458
发帖 196
注册 2006-10-05 12:04
19年会员
UID 64614
状态 离线
没人帮忙么???
3 发表于 2008-04-10 17:07 ·  IANA 局域网IP(Private-Use)
初级用户
积分 70
发帖 30
注册 2008-01-17 14:22
18年会员
UID 108844
性别 男
状态 离线
恩,没有试过,我感觉应该跟执行计划任务的用户有关。at是用system执行的,你把第二行改一下,把tasklist echo出来,看看有没有不同。
4 发表于 2008-04-11 00:24 ·  中国 浙江 温州 电信
中级用户
★★
积分 458
发帖 196
注册 2006-10-05 12:04
19年会员
UID 64614
状态 离线
Originally posted by bigfaint at 2008-4-10 17:07:
恩,没有试过,我感觉应该跟执行计划任务的用户有关。at是用system执行的,你把第二行改一下,把tasklist echo出来,看看有没有不同。


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

好奇怪
5 发表于 2008-04-11 06:30 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
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*"
论坛跳转: