web-dev-qa-db-ja.com

WindowsショートカットでPowerShellウィンドウでexeを実行するにはどうすればよいですか?

最近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"

最初の2つのポップは、黒いコマンドウィンドウを一瞬開き、すぐに消えます。また、[適用]をクリックすると、powershellC:\Windows\System32\WindowsPowerShell\v1.0\powershell.exeに置き換えられますが、ここに短縮バージョンを含めることにしました。

3番目は「ターゲットボックスで指定された名前「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
Aaron Franke

次の構文を使用できます。

powershell Start-Process 'C:\Program Files\Blender Foundation\Blender\blender.exe'

Start-Process プログラムを実行し、アプリケーションのプロセスオブジェクトを返します。これにより、ファイルに対するアクションを制御し、アプリが実行される環境を制御できます。プロセスが終了するのを待って、プロセスの終了イベントをサブスクライブすることもできます。

PowerShellがコンソールを出力に使用するには、Start-Process呼び出しに、次のように定義された-NoNewWindowのパラメーターを追加します。「現在のコンソールウィンドウで新しいプロセスを開始します。デフォルトでは、PowerShellは新しいウィンドウを開きます。」

その他のオプションについては、TechNetの記事 PowerShell:Running Executables を参照してください。

1
harrymc