Powershell カレントディレクトリを取得し変数に格納する

Powershell カレントディレクトリを取得し変数に格納する方法についての情報です。

 

PowerShell 3 より前は、Split-Path コマンドレットを使用して MyInvocation.MyCommand.Definition プロパティをクエリするより良い方法はありませんでした。

Split-Path -Parent $($global:MyInvocation.MyCommand.Definition)
Split-Path コマンドレットは、実行中のスクリプトの現在のディレクトリを返すために -Parent パラメーターとともに使用されます。

これは、保存された PowerShell(.ps1)ファイルに上記の構文を含めた場合にのみ機能することに注意してください。上記の構文をコマンドラインで実行すると、Null 例外が返されます。

また、PowerShell の統合スクリプト環境(ISE)で上記の構文を選択として実行すると(選択として実行または F8 キーを押す)、ParameterArgumentValidationErrorNullNotAllowed または Null 例外がトリガーされることにも注意してください。

 

 

PowerShell スクリプトの現在の場所を取得するための Windows PowerShell での作業ディレクトリの取得
スクリプト上の現在の場所を取得する方法について説明したので、スクリプトの現在の作業ディレクトリを取得する方法を習得しても問題はありません。

Windows PowerShell v2 では、$ExecutionContext 変数に EngineIntrinsics プロパティが含まれています。この変数とプロパティを使用して、実行中の Windows PowerShell スクリプトの現在の作業ディレクトリなど、コマンドレットで使用できる実行オブジェクトを見つけることができます。

$ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath('.\')
ただし、最新バージョンの Windows PowerShell を実行している場合は、便利なように別のコマンドレットが導入されています。Get-Location コマンドレットを使用し、Path プロパティを呼び出して、スクリプトの現在の作業ディレクトリを取得できます。

(Get-Location).Path

 

色々と情報が記載されていますが、「(Get-Location).Path」で変数に格納できます。

 

PS C:\Users\testuser> $path = (Get-Location).Path
PS C:\Users\testuser> echo $path
C:\Users\testuser


「引用元」
PowerShell スクリプトの現在の場所を取得するための Split-Path コマンドレットの使用
https://www.delftstack.com/ja/howto/powershell/get-the-current-location-of-the-powershell-script/

 

バッファロー マウス 無線 ワイヤレス 5ボタン 【戻る/進むボタン搭載】 小型 軽量 節電モデル 最大584日使用可能 BlueLED ブラック BSMBW315BK