【Start-Process】PowerShellでプログラムを起動する

スポンサーリンク

パスが通っているプログラムについてはプログラム名を指定することで、PowerShellでファイルを起動することができます。

PS> notepad
PS>

もちろんフルパスで指定することもできます。

PS> C:\Windows\System32\notepad.exe
PS>

それでは次の例を見てみましょう。Google Chromeの実行ファイルをフルパスで指定しています。

PS> C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
x86 : 用語 'x86' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。
名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください
。
発生場所 行:1 文字:19
+ C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
+                   ~~~
    + CategoryInfo          : ObjectNotFound: (x86:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS>

エラーが発生しました。これはパスにスペースが含まれるのが原因です。今度はダブルクオーテーション(“) で囲んでトライしてみます。

PS> "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
PS>

この場合エラーにはなりませんが、Chromeは実行されません。echo コマンドと同様に入力した文字列がそのまま表示されるだけです。

Start-Process コマンドを使うことで、プログラムとして実行することができます。

PS> Start-Process -FilePath "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
PS>

なお、先頭にアンパサンド (&) を付加することでもプログラムを実行できます。アンパサンド (&) は実行演算子と呼ばれ指定した文字列をプログラムとして認識し、実行します。

PS> & "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
PS>

以上。

コメント