【问题标题】:keep command line window open when running scheduled task executing batch file运行计划任务执行批处理文件时保持命令行窗口打开
【发布时间】:2013-12-13 19:33:24
【问题描述】:

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

 @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 添加到了添加参数框中。

【问题讨论】:

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


    【解决方案1】:

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

    myscript.bat
    

    改成

    cmd 
    

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

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

    在我的系统(Win7 64 位)上测试,它运行良好。我正在查看它在键入此文本时创建的打开命令窗口。 :-)

    【讨论】:

    • 感谢您的回复。我这样做了,并问我是否希望使用以下参数/k“c:\..bat”运行任务。我说可以,试了一下,任务还在运行,没有控制台窗口。
    • 非常感谢。让它工作..是参数字段中的错字
    • 这仍然适用于 Windows 10 吗?我遇到了麻烦。 -- 哦,我明白了,任务必须配置为以登录用户身份运行...
    • Windows Server 2012 R2:这将起作用,但您必须确保在任务的“常规”选项卡上选择“仅在用户登录时运行”。然后,当您单击运行时,将打开 cmd 窗口。
    • 在 Windows Server 2003 中为我工作!
    【解决方案2】:

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

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

    schtasks /Change /TN "My Task" /IT
    

    但是,这确实需要您以与执行计划任务相同的用户上下文登录。因此,如果您的计划任务是使用本地系统的“taskaccount”,那么您必须以“taskaccount”用户的身份登录系统。

    奇怪的是,当我手动运行任务时它可以工作,但在预定时间启动时它没有弹出。

    【讨论】:

    • 我尝试使用 'schtasks' 并询问“请输入我在 Windows 凭据中输入的 的运行密码,它说“错误:访问被拒绝。”
    【解决方案3】:

    Ken 的回答对我不起作用。

    发现了这种做法:

    在您的 BAT 文件中(如果您只有 EXE,则创建一个):

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

    像魅力一样工作!

    注意:在计划任务中,必须勾选“仅当用户登录时才执行”

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

        我尝试了以上所有方法,但它们对我不起作用。这是我为使其正常工作所做的工作:

        平台 视窗服务器 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

        DOS 命令提示符窗口现在总是打开。更重要的是,任务现在成功运行并完成。注意:计划任务 RunAs 用户 登录到服务器。

        【讨论】:

        • 尝试以下操作:CMD /C C:\MyScript.bat 并取消选中“仅在用户登录时执行”。
        猜你喜欢
        • 2013-03-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-24
        • 2013-10-18
        • 2014-09-14
        • 1970-01-01
        • 1970-01-01
        • 2019-08-10
        相关资源
        最近更新 更多