我最近一直在使用 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 中的命令/可执行文件?
答案1
您可以使用以下语法:
powershell Start-Process 'C:\Program Files\Blender Foundation\Blender\blender.exe'
开始进程 执行程序,返回应用程序的进程对象。它允许您控制对文件的操作并控制应用程序的运行环境。您还可以等待进程结束并订阅进程 Exited 事件。
为了让 PowerShell 使用控制台进行输出,请在调用中添加Start-Process
参数-NoNewWindow
,定义为:“在当前控制台窗口中启动新进程。默认情况下,PowerShell 会打开一个新窗口。”
有关更多选项,请参阅 TechNet 文章 PowerShell:运行可执行文件。