LoginSignup
3
0

PowerShellでパスに半角スペースが含まれるファイルの実行方法

Posted at

はじめに

PowerShellでC:\Program Files\配下などのファイルを実行する方法を記載します。
ディレクトリ移動して実行すればいいじゃん!と言われてしまえばそれまでですが、ワンライナーで書きたい時などにこの方法が使えます。
コマンドプロンプトだとダブルクォーテーションで囲むだけで実行できるのに、なぜPowerShellで出来ないのかは神のみぞ知る所です。

結論

パス全体をダブルクォーテーションで囲った後に、先頭に&を付けることで実行できます。

&"C:\Program Files\hogehoge\hoge.exe"

まずは普通に実行

そのまま実行すると以下のようになります。

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

ダブルクォーテーションを付けて実行してみる

ダブルクォーテーションを付けただけだと、文字列としてそのまま表示されてしまいますね。

PS C:\> "C:\Program Files\hogehoge\hoge.exe"
# C:\Program Files\hogehoge\hoge.exe

ではどうするか

パスの先頭に&を付けることで、ファイルを実行することが出来ます!

PS C:\> &"C:\Program Files\hogehoge\hoge.exe"
3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0