獲取 PowerShell 指令碼的檔案系統位置

Rohan Timalsina 2023年1月30日 2022年5月16日
  1. 使用 $PSCommandPath 獲取 PowerShell 指令碼的檔案系統位置
  2. 使用 $PSScriptRoot 獲取 PowerShell 指令碼的檔案系統位置
  3. 使用 $MyInvocation 獲取 PowerShell 指令碼的檔案系統位置
獲取 PowerShell 指令碼的檔案系統位置

檔案的位置由檔案路徑指示。有多種方法可以使用 PowerShell 獲取檔案的完整路徑。

是否可以找到當前執行的 PowerShell 指令碼的位置?答案是肯定的。

本教程將介紹不同的方法來獲取正在執行的 PowerShell 指令碼的檔案系統位置。

使用 $PSCommandPath 獲取 PowerShell 指令碼的檔案系統位置

$PSCommandPath 是 PowerShell 中的自動變數之一。自動變數由 PowerShell 建立和維護。

$PSCommandPath 儲存正在執行的指令碼的完整路徑。它在所有 PowerShell 指令碼中都有效。

例如,你可以在指令碼中包含變數 $PSCommandPath,以獲取 PowerShell 中正在執行的指令碼的位置。

Write-Host "Path of the script: $PSCommandPath"

執行指令碼。

.\myscript1.ps1

輸出:

Path of the script: C:\Users\rhntm\myscript1.ps1

使用 $PSScriptRoot 獲取 PowerShell 指令碼的檔案系統位置

$PSScriptRoot 儲存執行指令碼的父目錄的完整路徑。你可以使用 $PSScriptRoot 變數來獲取指令碼檔案所在的目錄。

例如:

Write-Host "Script's directory: $PSScriptRoot"

執行指令碼。

.\myscript2.ps1

輸出:

Script's directory: C:\Users\rhntm

它在 PowerShell 3.0 的所有指令碼中都有效。

使用 $MyInvocation 獲取 PowerShell 指令碼的檔案系統位置

自動變數 $MyInvocation 包含當前命令的資訊,例如其名稱、引數和引數值。你可以在指令碼檔案中包含 $MyInvocation.MyCommand.Path 以獲取 PowerShell 中正在執行的指令碼的完整路徑。

write-Host "Path:"
$MyInvocation.MyCommand.Path

執行指令碼。

.\myscript3.ps1

輸出:

Path:
C:\Users\rhntm\myscript3.ps1

我們希望本教程可以幫助你瞭解如何獲取正在執行的 PowerShell 指令碼的檔案系統位置。

Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

相關文章 - PowerShell Script