[Powershell]実行ファイルのファイル名を取得する方法

Powershell Powershell
この記事は約2分で読めます。

Powershellのスクリプト内で実行ファイル(ps1ファイル)のファイル名を取得してみました。

広告

ps1ファイル内で自分自身のファイル名を取得する

以下のコマンドで取得可能です。

# スクリプトのフルパスを取得
$ScriptFullPath = $MyInvocation.MyCommand.Path

# スクリプトのファイル名を取得
$ScriptFileName = [System.IO.Path]::GetFileName($scriptFullPath)

# ファイル名を表示
Write-Output "ScriptName : $ScriptFileName"

コマンドの解説

$MyInvocation.MyCommand.Path

$MyInvocation は、現在のスクリプトの実行に関する情報を格納する自動変数です。

MyCommand.Path プロパティは、スクリプトの完全なパスを返します。

これによってスクリプトのフルパスを取得できます。

[System.IO.Path]::GetFileName($scriptFullPath)

System.IO.Path クラスの GetFileName メソッドを使用して、パスからファイル名のみを取り出します。

実行例

上記のスクリプトの実行結果は以下になります。

PS C:\> powershell -ExecutionPolicy Unrestricted -File .\getfilename.ps1
ScriptName : getfilename.ps1

タイトルとURLをコピーしました