【问题标题】:Problem with Windows XP scheduler calling C# app requiring passing of variableWindows XP 调度程序调用需要传递变量的 C# 应用程序的问题
【发布时间】:2010-08-18 13:40:48
【问题描述】:

我有一个需要在计算机上运行的 C#.net 应用程序。它必须被安排。我正在使用 Windows XP Professional,并且该应用程序位于 C#.net 中。我试图安排工作,但我认为我的语法是错误的。我将不胜感激任何帮助纠正它。 c#exe文件在电脑的c盘,为了让它正常工作,我需要传入一个“autorun”的变量。否则它会拉出一个菜单,我不想要那个。

我在调度器中的运行代码是:

C:\\Windows\System32\cscript.exe C:\Program Files\Paper\Paper.exe /autorun

它做了一些事情,但是 exe 会创建一个从未创建过的 excel 文件,因此它无法正常运行。如果我手动运行 exe,它可以正常工作,所以我的问题似乎出在我安排任务的方式上。任何帮助,将不胜感激。

【问题讨论】:

  • 尝试将一些日志代码添加到您的 exe 并检查日志。
  • 您需要在"C:\Program Files\Paper\Paper.exe" 周围加上引号,因为其中有空格吗?

标签: c# windows-xp scheduled-tasks


【解决方案1】:

CScript.exe 是控制台 Windows 脚本主机解释器。您需要将脚本文件传递给它,如 VBS 或 JS 文件。

它可能在后台静默失败,并显示一条消息说它无法理解脚本文件,因为您提供的 cscript 是一个 exe。

不要打扰 cscript,因为除非问题中缺少某些内容,否则您很可能不需要它,这就是您的问题的原因。

只需在任务计划程序中设置“C:\Program Files\Paper\Paper.exe”/autorun 即可。

【讨论】:

  • 我们取出了 CScript.exe,这很有帮助。原来 C# 和 DOS 一起不喜欢 / 所以当我在 Autorun 之前取出它并删除它运行的 CScript.exe 时。非常感谢!
【解决方案2】:

我认为您的文件路径需要在 "" 内。进行实验,但我认为您的第一部分需要在引号内,并且您的选项需要不带引号。

【讨论】:

    【解决方案3】:

    为什么不创建一个包含以下内容的批处理文件:

    C:\Program Files\Paper\Paper.exe /autorun

    然后调用调度器中的批处理文件:

    C:\Windows\System32\csript.exe BatchFile.bat

    未能在 exe 路径周围加上引号:

    C:\Windows\System32\csript.exe "C:\Program Files\Paper\Paper.exe" /autorun

    否则它将把“C:\Program”和“Files\Paper\Paper.exe”视为单独的参数。

    【讨论】:

    • 我们尝试了一个批处理文件并遇到了同样的问题。原来 /autorun 是问题的一部分。显然 C# 和 DOS 对 / 有问题,所以我们将其删除并作为自动运行进行,它可以工作。感谢您的帮助!
    猜你喜欢
    • 2014-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多