Batch file 在任务计划程序下运行的批处理文件在批处理文件完成后继续运行

Batch file 在任务计划程序下运行的批处理文件在批处理文件完成后继续运行,batch-file,Batch File,这是对我先前问题的一种跟进() 为了进行测试,我制作了这个简单的批处理文件,以确保任务调度器正确执行批处理文件: cd "C:\Users\user\Desktop" echo. 2>test.txt TASKKILL /F /IM cmd.exe 因此,在桌面上创建test.txt文档后,批处理文件应该结束,但它会继续运行: 在批处理文件的末尾或任务属性中的设置是否有方法确保cmd进程退出 谢谢 我找到的解决方案是在批处理文件的末尾添加这一行: cd "C:\Users\user\

这是对我先前问题的一种跟进()

为了进行测试,我制作了这个简单的批处理文件,以确保任务调度器正确执行批处理文件:

cd "C:\Users\user\Desktop"
echo. 2>test.txt
TASKKILL /F /IM cmd.exe
因此,在桌面上创建
test.txt
文档后,批处理文件应该结束,但它会继续运行:

在批处理文件的末尾或任务属性中的设置是否有方法确保cmd进程退出


谢谢

我找到的解决方案是在批处理文件的末尾添加这一行:

cd "C:\Users\user\Desktop"
echo. 2>test.txt
TASKKILL /F /IM cmd.exe
现在,批处理文件任务运行并完成后,它不再位于“所有正在运行的任务”列表中,并且状态返回到“就绪”,而不是停留在“正在运行”

警告:
该命令将杀死所有正在运行的命令处理器实例,因此可能有害

运行
TASKKILL/F/IM cmd.exe
将杀死所有cmd.exe进程,无论它是否是生成此批处理文件的进程。这可能是不可取的行为。:-)

从您的最后一个问题判断,我猜您仍在使用
cmd.exe/k
运行任务,这将使该窗口无限期打开。对于无人参与的任务,
cmd.exe/c
是更好的选择。批处理文件完成后,进程应该结束。

您可以在脚本的最后一行添加“退出”

cd "C:\Users\user\Desktop"
echo. 2>test.txt
exit
在Windows7上也一样。 将所有批处理文件放在运行任务的用户特定路径的目录中

运行programm=“cmd.exe”(无路径)

您的附加功能,我的where=“/c”c:\Users[username]\which\Your\u batchfile.bat”>>log.txt”

>log.txt”以便我可以看到批处理的输出

开始于=“C:\Users[username]\whatever

我还勾选了“拥有最高特权的跑步”框


之后一切都很顺利:)

我遇到了完全相同的问题。然而,当我读到Trevor778在这篇文章中所写的内容时,我感到被欺骗了:

我也遇到了同样的问题-任务正常运行,但状态一直显示为正在运行。一个简单的尝试是单击左侧列中的任务计划程序库。单击“操作/刷新”。Presto。状态更改为“就绪”。这就是我的全部任务,任务运行正常,只是状态没有更新。希望这对我有所帮助

参考:

使用以下内容

exit /B

您可以在windows控制台区域中找到更多信息,然后键入:
exit/?

谢谢您的输入,我将在以后的批处理文件中包含此信息(如有必要)。我最终编写了一个备份程序来处理所有事情,而不是现有备份批处理文件的包装。我没有注意到之前的
/c
/k
之间的区别,或者
/k
实际上意味着控制台保持打开。这是这两个参数之间唯一的区别。
/c
意味着当作业完成时,控制台将终止。谢谢!谢谢提示!任务完成时,状态似乎不会更新,而不按“刷新”。如果您必须手动刷新它,这没有帮助,因为它仍然会阻止任务再次运行。@Vincent它将再次运行。它只是显示“R”“正在运行”状态(状态未在“任务计划程序”窗口中更新)。您可以打开另一个窗口来验证这一点。另请参阅:该命令将杀死所有正在运行的命令处理器实例,因此它可能是有害的!这很好。它对我有效