獲取 PowerShell 指令碼的檔案系統位置
Rohan Timalsina
2023年1月30日
2022年5月16日
-
使用
$PSCommandPath
獲取 PowerShell 指令碼的檔案系統位置 -
使用
$PSScriptRoot
獲取 PowerShell 指令碼的檔案系統位置 -
使用
$MyInvocation
獲取 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 指令碼的檔案系統位置。
Author: Rohan Timalsina