运行计划任务执行批处理文件时保持命令行窗口打开

时间:2013-11-27 22:53:38

标签: scheduled-tasks batch-processing windows-console

我希望在运行执行批处理文件的计划任务时保持打开控制台窗口。如果我手动运行意味着执行批处理文件,窗口保持打开状态,但通过任务调度程序它不会打开,但我可以看到任务仍在运行。我最后暂停了一下。

 @echo off 
 TITLE PROCESS_MGR
 tasklist /FI "IMAGENAME eq JOESMO.exe" | find /I "JOESMO.exe">nul &&(echo PROCESS 
 JOESMO.exe IS ALREADY RUNNING! 
 echo %DATE%
 echo %TIME%
 pause
 ) || (
 echo JOESMO PROCESS IS NOT RUNNING 
 cmd /c start "JOESMO.exe" "C:\Users\xxxx\Documents\
 Visual Studio 2010\Projects\Projects2013\JOESMO.exe"
 pause)

我发现这个建议cmd / k myscript.bat但是在Windows Server 2008的任务调度程序中创建任务我不知道在哪里应用它。我将/ k添加到任务中的编辑操作中的添加参数框。

5 个答案:

答案 0 :(得分:22)

在“计划任务”对话框中,就在它将要运行的批处理文件的名称之前(它标记为Program/script。您现在有类似的内容:

myscript.bat

将其更改为

cmd 

将以下内容添加到** Add Arguments(可选)条目:

/k "C:\My Batch File Folder\MyScript.bat"

在我的系统上测试过(Win7 64位),它运行得很好。当我输入这个文本时,我正在查看它创建的打开命令窗口。 : - )

答案 1 :(得分:4)

不幸的是,Ken的解决方案在Windows 2008 R2 Std服务器上对我无效,我可以通过使用schtasks.exe修改计划任务设置来启动交互式窗口

在命令窗口中,我执行了以下命令:

schtasks /Change /TN "My Task" /IT

但是,这确实需要您以执行计划任务的相同用户上下文登录。因此,如果您的计划任务是使用localsystem" taskaccount"然后你必须以" taskaccount"登录系统。用户。

奇怪的是,当我手动执行任务时它起作用了,但是当它在预定时间开始时它没有弹出。

答案 2 :(得分:2)

Ken的答案对我没有用。

找到了这种做法:

BAT文件中的

(如果您只有EXE,请创建一个):

start C:/Absolute/Path/To/MyScript.exe myScriptArg

就像一个魅力!

注意:在计划任务中,您必须仅在用户被记录时检查" Exec"

答案 3 :(得分:0)

创建批处理文件的快捷方式并将其放入操作中。为我工作

答案 4 :(得分:0)

我尝试了以上所有内容,但它们对我不起作用。以下是我为实现这一目标所做的工作:

<强>平台 Windows Server 2003 R2 SP2 ActivePERL v5.10.1

<强>步骤

  1. 创建DOS BATCH脚本 - 运行实际程序,即myscript.bat
  2. 创建PERL脚本以调用DOS批处理脚本,即myscript.pl
  3. myscript.pl是一个单行脚本:system(“e:\ scripts \ myscript.bat”);
  4. 创建计划任务:perl myscript.pl
  5. 现在,DOS命令提示符窗口始终打开。更重要的是,该任务现在已成功运行并完成。注意:计划任务RunAs用户 登录到服务器。