Powershellでフルパスで実行ファイルを指定する
Powershellからexeファイルだったり別のPS1をフルパスで実行させようとすると少しと間取ります
簡易的な実行方法が
.\<ファイル>.拡張子
をよく多用しているのですがこの方法だとフォルダまで指定するフルパスでは実行できません。
その対処方法についてまとめました
結論からPowershellでフルパスでファイルを実行するには、以下の2つの方法があります。
1 Start-Processコマンドレット
Start-Processコマンドレットは、プロセスを開始するために使用します。フルパスでファイルを実行するには、以下のようにコマンドを実行します。
Start-Process -FilePath \<フルパス\>
Start-Process -FilePath C:\Temp\test.ps1
引数がある場合はこのように-ArgumentListで指定します
Start-Process -FilePath C:\ffmpeg\ffmpeg.exe -ArgumentList "-v" -NoNewWindow
ffmpegのバージョンが確認できました。
また-NoNewWindowは新しいウィンドウを開きたくないので指定しました。
詳しくは公式ドキュメントを参照ください
2 Invoke-Itemコマンドレット
Invoke-Itemコマンドレットでも、ファイルを開いたり、実行したりするために使用します。フルパスでファイルを実行するには、以下のようにコマンドを実行します。
Invoke-Item -Path \<フルパス\>
Invoke-Item -Path C:\Temp\test.ps1
ただし、Invoke-Itemでは引数を指定できません。そのため引数を使用するようなファイルの実行はできません。
引数を指定したい場合はStart-Processを使用してください