获取 PowerShell 脚本的文件系统位置
Rohan Timalsina
2023年1月30日
-
使用
$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 脚本的文件系统位置。
作者: Rohan Timalsina