社内SEの話

日々起きたことの記録用

Powershell フルパスでファイル実行

Powershellでフルパスで実行ファイルを指定する

Powershellからexeファイルだったり別のPS1をフルパスで実行させようとすると少しと間取ります

簡易的な実行方法が

.\<ファイル>.拡張子

をよく多用しているのですがこの方法だとフォルダまで指定するフルパスでは実行できません。

その対処方法についてまとめました

結論からPowershellでフルパスでファイルを実行するには、以下の2つの方法があります。

2つの方法
  • Start-Process
  • Invoke-Item
  • 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

    powershell

    ffmpegのバージョンが確認できました。

    また-NoNewWindowは新しいウィンドウを開きたくないので指定しました。

    詳しくは公式ドキュメントを参照ください

    learn.microsoft.com

    2 Invoke-Itemコマンドレット

    Invoke-Itemコマンドレットでも、ファイルを開いたり、実行したりするために使用します。フルパスでファイルを実行するには、以下のようにコマンドを実行します。

    Invoke-Item -Path \<フルパス\>
    Invoke-Item -Path C:\Temp\test.ps1

    ただし、Invoke-Itemでは引数を指定できません。そのため引数を使用するようなファイルの実行はできません。

    引数を指定したい場合はStart-Processを使用してください

    learn.microsoft.com