获取 PowerShell 脚本的文件系统位置

Rohan Timalsina 2023年1月30日
  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
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