我最近一直在使用 Blender,但似乎有些错误只打印到控制台。如果我手动打开 PowerShell 并从那里运行 Blender,它工作正常,我可以阅读错误消息。但是,我想更改我的快捷方式来为我执行此操作。
基本上,我试图从快捷方式在 PowerShell 中运行任意命令。我发现这个问题没有帮助;我试过把这些放在“目标”部分,但没有成功:
powershell "C:\Program Files\Blender Foundation\Blender\blender.exe"
powershell Invoke-Expression "C:\Program Files\Blender Foundation\Blender\blender.exe"
Invoke-Expression "C:\Program Files\Blender Foundation\Blender\blender.exe"
前两个弹出打开一个黑色命令窗口片刻,它立即消失,当我点击“应用”时也powershell
被替换,C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
但我想我会在这里包含缩短的版本。
第三个说“目标框中指定的名称'Invoke-Expression'无效。”。
我也遇到了这个问题,所以我尝试添加-NoExit -Command
:
powershell -NoExit -Command "C:\Program Files\Blender Foundation\Blender\blender.exe"
这会弹出一个带有消息的窗口C:\Program : The term 'C:\Program' is not recognized as the name of a cmdlet, function, script file, or operable program
。我觉得奇怪的是,即使我引用了路径,它也会卡在空间中。我也尝试过使用一组单引号:
powershell -NoExit -Command '"C:\Program Files\Blender Foundation\Blender\blender.exe"'
powershell -NoExit -Command "'C:\Program Files\Blender Foundation\Blender\blender.exe'"
这只会导致 PowerShell 窗口打开到命令提示符,打印出我希望执行的命令,而不是实际执行它:
C:\Program Files\Blender Foundation\Blender\blender.exe
PS C:\Program Files\Blender Foundation\Blender>
如何从快捷方式在 PowerShell 中运行命令/可执行文件?
您可以使用以下语法:
Start-Process 执行一个程序,返回应用程序的进程对象。它允许您控制对文件的操作并控制应用程序运行的环境。您还可以等待流程结束并订阅流程退出事件。
要让 PowerShell 使用控制台进行输出,请在
Start-Process
调用中添加 的参数-NoNewWindow
,定义为:“在当前控制台窗口中启动新进程。默认情况下,PowerShell 会打开一个新窗口。”有关更多选项,请参阅 TechNet 文章 PowerShell:运行可执行文件。