(1) Powershellで実行中のファイル名を取得する方法
(1-1) 構文①
(1-2) 構文①サンプルプログラム
(1-3) 構文②
(1-4) 構文②サンプルプログラム
(1) Powershellで実行中のファイル名を取得する方法
今まさに実行中のPowershellのファイル名を取得する方法についてです。
(1-1) 構文①
1つ目の構文は「$MyInvocation」自動変数を用いた方法です。「自動変数」はPowershell自体に関する情報を保持する変数です。
(構文①)
$MyInvocation.MyCommand.Name
まず「$MyInvocation.MyCommand」によって「ps1ファイルオブジェクト」が返却されます。その中の「Name」属性を出力する事で「現在実行中のPowershellのファイル名」を取得できます。
ちなみに、PS バージョン3以降でも使えていますが、後述する構文の方がよりシンプルかも知れません。
# 実行中のPSファイルパスを取得し、変数に格納 $ScriptDir = Split-Path $MyInvocation.MyCommand.Path -Parent echo $ScriptDir
(図111)実行結果
(1-2) 構文①サンプルプログラム
現在実行中のPSファイルがあるフォルダ配下の「一覧」を取得するサンプルです。
# 実行中のPSファイルパスを取得し、変数に格納 $ScriptDir = Split-Path $MyInvocation.MyCommand.Path -Parent echo $ScriptDir # 実行中のPSファイルパス配下のフォルダ・ファイル一覧を取得 Get-ChildItem -Path $ScriptDir
(図121)実行結果
「$MyInvocation」は実行されたコマンドに対する各種の情報を保持しています。例えば次のような項目です。
(1-3) 構文②
2つ目の構文は「$PSScriptRoot」自動変数を用いた方法です。
(例)
# 実行中のPSファイルパスを取得し、変数に格納 $ScriptDir = $PSScriptRoot echo $ScriptDir
(図131)実行結果
(1-4) 構文②サンプルプログラム
現在実行中のPSファイルがあるフォルダ配下の「一覧」を取得するサンプルです。先程の構文①のサンプルと処理内容は同じですが、こちらの方が記載がシンプルで、より見やすいですね。
(例)
# 実行中のPSファイルパス配下のフォルダ・ファイル一覧を取得 Get-ChildItem -Path $PSScriptRoot
(図141)実行結果