从任务计划程序运行批处理文件时,MKS Toolkit中的ps命令不会列出任何内容

时间:2013-10-21 07:00:25

标签: windows batch-file mks

我创建了一个批处理文件,如下所示:

set VAR1=VALUE1
start another_batch_file
sleep 10
ps -l |grep abc > foo.txt

another_batch_file会启动几个进程,我想使用ps来列出一些特定的进程。当我从cmd窗口运行它时,此脚本运行良好,但如果我在任务计划程序中创建任务以自动调用此脚本,则foo.txt将为空。

我还尝试将ps -l结果输出到文件中,它也是空的

ps&来自MKS工具包的grep。

修改

根据评论,我尝试使用类似于以下内容的脚本:

set VAR1=VALUE1
start another_batch_file
sleep 10
ps > foo.txt
tasklist > bar.txt

现在foo.txt仍为空,而bar.txt包含所有进程信息的正常输出。

任何人都有线索?

编辑2:

我选中了“以最高权限运行”框,并且ps命令现在运行良好。

我在cmd窗口或计划任务中运行脚本时一直使用相同的用户帐户,尽管位于映射驱动器中的ps可执行文件,我认为这导致脚本需要更高的权限运行

2 个答案:

答案 0 :(得分:3)

如果它在提示符下工作:默认情况下,任务计划程序在系统帐户中运行,并且无法访问网络资源,如果您的其他批处理文件正在尝试访问它们,则它将无法加载。

答案 1 :(得分:2)

批处理文件永远不会出现在进程列表中。批处理文件由cmd.exe执行,因此cmd.exe位于列表中。

但如果您添加一个用于显示参数的开关,您应该可以使用ps访问它。

tasklist也可以。

tasklist /FI "IMAGENAME eq cmd.exe" /V | grep another_batch_file
  

C:\ Windows \ system32 \ cmd.exe - another_batch_file.bat cmd.exe
  1320控制台1 3.132 K未知