【问题标题】:How to run an executable through PowerShell without batch files or cmd?如何在没有批处理文件或 cmd 的情况下通过 PowerShell 运行可执行文件?
【发布时间】:2018-04-01 22:34:30
【问题描述】:

我目前正在使用批处理文件来运行一组模拟。批处理文件中的每一行读取:

"filepath\program.exe" "filepath\simulation.file"

引号用于限制文件路径中存在的任何空格。文件路径中没有空格,可以去掉引号。

当我通过 PowerShell 运行批处理文件时,使用以下命令,它工作正常:

.\batch.bat

运行可执行文件并将输出写入主机,就像我在 cmd 中运行相同的批处理文件一样。

但是,我想放弃批处理文件并直接通过 PowerShell 运行命令。当我运行以下命令时,我让程序执行,尽管它运行不正常并且我没有将任何内容写入主机。在我使用 Ctrl+C 取消之前,它似乎也会挂起。

& "filepath\program.exe" "filepath\simulation.file"

您能帮我解决以下问题吗?

  • 任何讨论 PowerShell 如何执行批处理文件的资源。
  • 如何在不使用 cmd 或批处理文件的情况下通过 PowerShell 运行可执行文件并将其写入主机。

【问题讨论】:

  • 如果您提供实际路径、名称和详细信息,有人可能会提供更集中的响应。
  • 从Powershell调用一个bat文件实际上是在后台无形地使用CMD。 PS 在后台使用 CMD 运行 bat 文件,然后将其输出显示在 PS 控制台中。如果Start-Process& 都不能正常工作,听起来你的应用程序与PS Console 不兼容。

标签: powershell batch-file cmd


【解决方案1】:

你试过Start-Process吗?

Start-Process -FilePath "filepath\program.exe" -ArgumentList "filepath\simulation.file" -Wait

PS:参数-Wait是可选的。

【讨论】:

  • 感谢您的建议,但它并没有像我希望的那样工作。当我尝试Start-Process 时,它加载了一个 cmd 窗口(我想避免)并尝试运行可执行文件(但没有成功)。
  • 正如您在Start-Process 的帮助中看到的那样,它支持名称为-NoNewWindow 的参数。这样可以避免打开新窗口。
【解决方案2】:

虽然我还不太清楚为什么,但我发现这个问题只发生在远程工作时。每当我在本地连接到网络时,该命令就可以正常运行。

由于我计划在位于网络本地的 PC 上执行该命令,所以我暂时将其留在这里。

感谢所有评论的人!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-22
    • 2018-07-16
    • 2013-10-05
    • 1970-01-01
    相关资源
    最近更新 更多