如何让任务计划程序在调用批处理文件时显示 cmd shell?

如何让任务计划程序在调用批处理文件时显示 cmd shell?

我正在使用 Windows 2008 R2,并尝试在任务计划程序中安排我的应用程序。我已使用正确的设置创建了一个批处理。

我遇到的问题是:我需要显示 Cmd shell 窗口(运行 bat),但任务计划程序在后台启动该应用程序,而 Cmd 窗口无处可寻。

我尝试了任务计划程序中的不同操作:

- cmd /c start ...MyProgram.bat does not work.
- I tried calling my batch directly does not work.
- I also tried a piece of vbs script with winScriptHost.run does not work either.

我错过了什么?我该如何解决这个问题?

答案1

我认为任务调度程序 GUI 没有提供任何运行交互式任务的方法。但 AT 命令似乎提供了。我发现technet 上的文章描述了(除其他内容外)AT 命令的 /interactive 开关。

答案2

如果您将计划任务设置为“仅在用户登录时运行”,并且您以该用户身份登录,则执行任务时将显示命令窗口。

如果将其设置为“无论用户是否登录都运行”,它将隐藏命令窗口。我猜这是您选择的选项。我认为没有办法让它使用此选项显示命令窗口。

因此您需要更改“运行”选项。

答案3

在阅读了您的帖子和要求后,我发现它也符合我的要求。我确实遵循了以下步骤,并能够在桌面(前台)上运行我的批处理脚本;

  • 在下面“行动”-> “启动程序”
  • 在下面“程序/脚本”- “C:\windows\system32\cmd.exe /C 启动D:\(脚本目录的路径)\批处理脚本.bat”
  • 在下面“一般的” -> 设置“仅在用户登录时运行”
  • 就我而言,我使用管理员用户 ID,并且可以保留我的登录会话“已锁定”,我不知道您的情况,您或其他人是否使用不同的 ID 登录 Windows 2008 r2。因此,通过这种方式,我可以使用 Windows 调度程序在我的 Windows 2008 r2 服务器上获得所需的输出。

答案4

解决您的问题的更好的方法可能是将错误和输出重定向到日志文件,然后只跟踪该日志文件。

相关内容