【问题标题】:How to execute my .exe in PowerShell when clicking on it单击它时如何在PowerShell中执行我的.exe
【发布时间】:2021-04-29 09:56:54
【问题描述】:

我有一个我在 中编写的程序,它在 中可以正常工作,但在 中却不行。问题是因为该程序是为普通人设计的,所以我不想向他们说明如何使用cdls 等来访问可执行文件……

当点击我的.exe 时,有什么方法可以让 Windows 在 Windows PowerShell 中运行程序,而不是在命令提示符中?

如果需要我会发布代码

【问题讨论】:

  • 运行 .exe 文件时,操作系统会将其加载到内存中。使用 cmd.exe 还是 powershell.exe 无关紧要。 “...在 PowerShell 上尝试过该程序...”是什么意思?
  • 当我点击我的程序 .exe 时,它​​会打开一个命令行,它按预期工作,但性能下降,因为我使用了很多系统(“CLS”),系统(“COLOR XX”) , Sleep() 在 25ms 和 100ms 范围内以及大量的 printf。由于性能不佳而感到沮丧,我想在 PowerShell 中对其进行测试,所以我打开它,进入程序文件夹并输入“.\nameofprogram.exe”命令使其启动,令我惊讶的是它起作用了完美无缺。我想要的是,当我的 .exe 被点击时,它会在 PowerShell 而不是 CMD 中打开
  • Is there any way to make Windows run the program in Windows PowerShell。 [。] PowerShell 仅在 PowerShell 控制台主机中运行 *.ps*。任何可执行文件都由 cmd.exe 运行。请参阅这些 MS 文章:PowerShell: Running Executablesabout_Command_Precedence

标签: c++ powershell cmd c++ windows powershell cmd


【解决方案1】:

我不是真正的 Windows 用户,但这里是我的建议:

  1. 您可以编写一个小 .bat 脚本来在 powershell 中打开您的应用程序,例如:How to run a PowerShell script from a batch file

【讨论】:

  • 不幸的是,这不起作用。无论如何,非常感谢您的回复:D
  • 啊,太糟糕了...请问,您是否使用了很多 std::endl;在你的代码中?也许您可以尝试在合适的地方用“\n”替换它们?也许它在 CMD 中运行得更好? std::endl 相当昂贵,因为它是一个返回字符 + 一个刷新。
  • 不,影响性能的是 system("COLOR XX") 功能与非常大的字体混合在一起(似乎 CMD 跟不上,但 PowerShell 可以)。我还没用过 std::endl
  • 我明白了,也许你可以考虑不使用终端模拟器来做你想做的事?也许您可以使用带有 OpenGL 上下文的新窗口来绘制您需要的内容?
【解决方案2】:

如果您想在 PowerShell 加载的情况下运行 .exe 程序,请使用以下命令:

powershell -NoLogo -NoProfile -Command "& C:\path\to\theapp.exe"

如果需要,可以将其放入 .bat 文件脚本中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2013-07-24
    • 1970-01-01
    • 2012-09-03
    • 1970-01-01
    • 2022-11-30
    • 1970-01-01
    相关资源
    最近更新 更多