【问题标题】:Console application not starting processes when scheduled in Windows在 Windows 中安排时控制台应用程序未启动进程
【发布时间】:2011-08-12 19:43:04
【问题描述】:

我有一个简单的 C# .NET 控制台应用程序,它运行一个外部进程“pscp”(putty 安全副本)。这在我运行 .exe 时效果很好。

但是,当我在 windows 计划任务中安排应用程序时,应用程序似乎没有打开外部进程 pscp.exe。通常它应该会弹出一个额外的控制台屏幕并在那里打开 pscp.exe。这有效,只是没有按计划进行。

我是这样开始的:

pscp.FileName = "pscp.exe";
Process p = Process.Start(pscp);
p.WaitForExit();

关于如何解决这个问题的任何想法?

【问题讨论】:

  • 检查 p 的属性,这应该可以解决这个问题。或者您的控制台应用程序没有在可以启动 pscp.exe 的帐户下运行...
  • 这是完整的例子吗? pscp 在你的 PATH 上吗?如果这是 putty 的一部分,那么您还需要提供一些参数,没有任何参数的 pscp.exe 只会打印一条使用消息并退出。
  • 不,这不是完整的示例。我在完整代码中有参数,并且 pscp.exe 的路径已在 .config 文件中设置
  • 您是否为您的应用启用了任何日志记录?在 try/catch 块中添加打开 pscp.exe 的代码并记录生成的异常(如果有)。我在计划任务方面遇到了意外行为,而日志记录真的很有帮助。
  • 它说“找不到指定的文件”所以我猜找不到 pscp.exe。如何将其添加到 PATH?

标签: c# console-application


【解决方案1】:

使用 /c 参数启动 cmd 在新的 cmd 窗口中运行“你的 exe”。

【讨论】:

  • 我应该在哪里运行这个?我正在计划任务中安排 c# .exe。在源代码本身中,我使用上面在我的问题中编写的代码调用外部 .exe。我没有调用cmd?
  • 使用 Process 类在您的应用程序中运行 cmd /c /Path/to/PscP/pscp.exe。
【解决方案2】:

计划任务以不同的身份运行。确保它工作正常。另外,请确保使用 cmd /c "your exe" 对 exe 的调用进行包装。

【讨论】:

  • 不确定 cmd /c "your exe" 是什么意思。你能帮我解决这个问题吗?感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-21
  • 1970-01-01
相关资源
最近更新 更多