【问题标题】:Launch a command shell from a console application run via Windows Task Scheduler从通过 Windows 任务计划程序运行的控制台应用程序启动命令外壳
【发布时间】:2017-11-07 23:41:09
【问题描述】:

我有一个 Windows 控制台应用程序,它通过任务计划程序中的计划设置启动。作为其正常运行时的一部分,此控制台应用程序将启动命令提示符以运行 java 程序。不,我无法控制 Java 程序的设计。它是按原样提供给我的,我没有权利或访问对其进行更改。我也无法用另一种语言实现它。我必须使用给我的东西。

无论如何,当我的控制台应用程序尝试运行命令提示符时,如果我手动启动该应用程序,它将正常工作。但是,当我在任务计划程序中尝试将其作为一项操作时,我的控制台应用程序将按预期启动并运行,直到它需要启动命令提示符。此时,控制台应用程序退出。未提供错误消息或代码。

当没有人登录服务器时,如何让命令提示符窗口从我的控制台应用程序中作为新窗口启动?

感谢您提供的任何提示或建议。

* 更新 *

这是从我的控制台应用程序中启动程序的代码 sn-p:

string parameter_save_path = @"C:\output\folder"
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo start_info = new System.Diagnostics.ProcessStartInfo();
start_info.WorkingDirectory = @"C:\mtselect-client";
start_info.FileName = "cmd.exe";
start_info.Arguments = "/C run.bat \"" + parameter_save_path + "\"";
process.StartInfo = start_info;
process.Start();
process.WaitForExit();

run.bat 用于启动 java 程序。

【问题讨论】:

  • 你能分享一些代码吗?您目前如何在命令行应用程序中启动 java 程序?
  • 很抱歉。代码 sn-p 现在是原始帖子的一部分。
  • 无赖。我想没有人知道如何做到这一点。我想我会尝试将程序分成两部分并为我的任务添加三个操作。这样,java程序将直接由任务调度程序运行,而不是由程序调用。不过,这必须是一种更好的方法。

标签: c# windows shell scheduled-tasks


【解决方案1】:

我认为这条消息为时已晚,但是......

也许在你的批处理文件中你正在运行你的java应用程序,比如:java -jar ApplicationName

首先我应该从批处理文件中注释掉“@echo off”,然后用一个 echo“x”(是 xa 自然数从 1 开始并在每次出现中增加 1)跟踪批处理行.接下来我将添加一行 java -version,这样我就可以确定 java 应用程序已安装且可访问。

也许 java 需要由经过身份验证的用户运行,因此已定义 java_home。也许应用程序需要一些 JVM 参数,例如内存大小等。

祝你好运,告诉我,我会尽力提供帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-13
    • 2022-01-14
    • 1970-01-01
    相关资源
    最近更新 更多