当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 在 PowerShell 中获取当前目录 [6 种方法]

作者:精品下载站 日期:2024-12-14 05:24:40 浏览:15 分类:玩电脑

在 PowerShell 中获取当前目录 [6 种方法]


[玩转系统] 在 PowerShell 中获取当前目录 [6 种方法]

使用 Get-Location Cmdlet

使用 Get-Location cmdlet 获取 PowerShell 中当前工作目录的路径。

使用获取位置 Cmdlet:

Get-Location

输出 :

Path
------
C:\Users\DELL

正如我们在上面看到的,我们当前的工作目录是 C:\Users\DELL,这意味着我们当前正在 Users 中的 DELL 文件夹中工作Windows 操作系统的 C 驱动器上的 文件夹。

我们还可以使用 Set-Location cmdlet 在 PowerShell 中设置不同的目录路径。现在,我们位于 C:\users\DELL 目录中。

使用设置位置 Cmdlet:

Set-Location C:\Intel\project

现在,让我们运行 Get-Location cmdlet 来获取当前工作目录的位置并查看它是否已更改。

使用获取位置 Cmdlet:

Get-Location

输出 :

Path
----
C:\Intel\project

我们已成功将当前工作目录从 C:\users\DELL 更改为 C:\Intel\project。如果存在用自定义消息写入当前工作目录的情况,我们可以使用变量来达到目的。

使用获取位置 Cmdlet:

$CurrentDirectory = Get-Location
Write-Host "Our current Working Directory is $CurrentDirectory"

输出 :

Our current Working Directory is C:\Intel\project

在此代码中,Get-Location 将当前目录分配给名为 $CurrentDirectory 的变量。使用 Write-Host cmdlet,我们可以在控制台上打印自定义消息。

因此,我们使用 Write-Host 在 PowerShell 终端上通过自定义消息显示当前目录的路径。注意:在 PowerShell 中,我们可以使用前缀 $ 声明变量,就像我们在上面的代码中声明 $CurrentDirectory 一样。

使用 $pwd 命令

使用$pwd命令获取PowerShell中当前工作目录的路径。

使用 $pwd 命令:

$pwd

输出 :

Path
----
C:\Intel\project

在这里,我们使用 $pwd 来获取当前工作目录。 $pwd 包含一个路径对象,用于检索当前目录的完整路径位置。在 PowerShell 中,此命令是 Get-Location cmdlet 的别名。

$pwd 是一个自动变量,是 System.Management.Automation.PathInfo 类型之一。 PathInfo 的所有成员都可以通过此变量访问。如果您想了解更多信息,请查看此 PathInfo。

使用 Resolve-Path Cmdlet [相对路径]

使用 Resolve-Path cmdlet 获取 PowerShell 中当前目录中文件或子文件夹的相对路径。

使用解析路径 Cmdlet:

  $relativePath = Get-Item \Intel\project\javaScript.txt | Resolve-Path -Relative
  $relativePath

输出 :

.\project\javaScript.txt

在PowerShell中,我们可能需要获取当前目录中文件或子文件夹的相对路径。为此,我们使用 Get-Item cmdlet 获取 \Intel\project.txt\javaScript.txt 中的项目。接下来,我们使用带有 -Relative 参数的 Resolve-Path cmdlet 来获取相对路径,并将其分配给名为 $relativePath 的变量。

在上面的脚本中,我们可以看到我们位于文件夹 C:/Intel 中,其中包含一个子文件夹 project,其中有一个名为 的项目或文件javaScript.txt

我们可以观察到,从PowerShell当前目录返回的是相对路径\project\javaScript.txt,而不是绝对路径C:\Intel\project\javaScript.txt

现在,什么是相对路径和绝对路径?在文件系统中,路径是指定文件或目录位置的字符串。路径有两种:绝对路径和相对路径。

绝对路径指定文件或目录的确切位置,从文件系统的根开始。例如,在 Windows 系统中,C:\Users\DELL\Documents 目录的绝对路径可能如下所示:

绝对路径:

C:\Users\DELL\Documents

绝对路径始终以根目录(在本例中为C:\ )开头,并指定一直到目标文件或目录的完整目录层次结构。

另一方面,相对路径指定文件相对于当前工作目录的位置或目录。当前工作目录是用户所在的目录,默认情况下将在其中创建任何新文件或目录。

例如,如果当前工作目录是 C:\Users\DELL\Documents 并且您想要指定 Downloads 目录的位置,则可以使用相对路径,例如这:

相对路径:

..\Downloads

此相对路径指定 Downloads 目录位于当前工作目录的上一级(.. 代表 父目录)。在下一节中,我们将学习如何获取父目录。

使用 Split-Path Cmdlet [获取父工作目录]

使用Split-Path cmdlet 拆分指定路径并提取父工作目录。

使用拆分路径 Cmdlet:

$CurrentDirectory = Get-Location
Split-Path -Path $CurrentDirectory -Parent

输出 :

C:\Intel

首先,我们将当前位置分配给名为$CurrentDirectory 的变量。其次,我们使用 Split-Path 以及参数 -Path-Parent 从指定路径获取父工作目录。

-Path 参数用于接受我们要分割的路径字符串。这里目录的完整路径 C:\Intel\project 被传递给它。 (请注意,如果使用 -path 参数名称,我们还可以传递多个路径字符串)。

-Parent 参数返回指定路径的父位置(不带文件名)。正如我们在上面看到的,返回了C:\Intel,这是父目录。请注意,-Parent是默认的split位置参数,这意味着如果我们错过了这个-Parent参数,我们仍然会获得父目录结果。

您可以参阅此文档以了解有关 Split-Path cmdlet 的更多信息。

使用 System.Environment 类

使用System.Environment类访问其CurrentDirectory属性以检索PowerShell中的当前工作目录。

使用系统环境类:

[System.Environment]::CurrentDirectory

输出 :

C:\Users\DELL

在这里,我们使用 System.Environment .NET 类的 CurrentDirectory 属性来获取当前工作目录。需要注意的一件事是,即使工作位置是 C:\Intel,它也会返回 C:\Users\DELL 作为当前目录路径。

在PowerShell中,我们可以为每个进程创建多个运行空间。每个运行空间的当前目录都不同。这与[System.Environment]::CurrentDirectory不同。

Environment::CurrentDirectory 指的是进程当前正在运行的目录。它与 PowerShell 位置不同,后者特定于运行管道的运行空间。

注意:避免使用[Environment]::CurrentDirectory并保持简单,使用Get-Location$PWD来获取当前的路径工作目录。

使用 $PSScriptRoot 变量 [获取 PowerShell 脚本的当前目录]

使用 $PSScriptRoot 变量确定脚本文件 (.ps1) 所在的当前目录。

获取脚本文件的当前目录:

$strDateTime = "2022-12-30"
[DateTime]$strDateTime
Write-Host 'Our Current working directory is:' $PSScriptRoot

上述脚本文件位于C:\Intel\project\ConvertString-toDate.ps1。请注意,脚本文件包含一个自动变量 $PSScriptRoot,在脚本运行时调用。现在,让我们在 PowerShell 中运行上述脚本文件,如下所示。

运行脚本文件:

C:\Intel\project\ConvertString-toDate.ps1

输出 :

Friday, December 30, 2022 12:00:00 AM
Our Current working directory is: C:\Intel\project

当我们运行上面的 ConvertString-to-Date.ps1 脚本文件时,它将字符串转换为 DateTime 格式,并且自动变量 $PSScriptRoot检索脚本的当前目录路径并显示它。

这就是如何在 PowerShell 中获取当前目录。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯