我希望在运行执行批处理文件的计划任务时保持打开控制台窗口。如果我手动运行意味着执行批处理文件,窗口保持打开状态,但通过任务调度程序它不会打开,但我可以看到任务仍在运行。我最后暂停了一下。
@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添加到任务中的编辑操作中的添加参数框。
答案 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
<强>步骤强>
现在,DOS命令提示符窗口始终打开。更重要的是,该任务现在已成功运行并完成。注意:计划任务RunAs用户 登录到服务器。