我创建了一个批处理文件,如下所示:
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
可执行文件,我认为这导致脚本需要更高的权限运行
答案 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未知