如何检查 PowerShell 中的文件夹是否存在

  1. 使用 Test-Path Cmdlet 检查 PowerShell 中文件夹是否存在
  2. 使用 System.IO.Directory 检查 PowerShell 中的文件夹是否存在
  3. 使用 Get-Item Cmdlet 检查 PowerShell 中的文件夹是否存在
  4. 结论
如何检查 PowerShell 中的文件夹是否存在

PowerShell 是一个强大的工具,可以执行不同的文件和文件夹操作。它允许您创建、复制、移动、重命名、删除和查看系统上的文件和文件夹。

文件和文件夹管理是 PowerShell 的一项功能,允许用户不仅操作这些实体,还验证它们在系统中的存在。在本教程中,我们将探索使用 PowerShell 检查系统中文件夹存在的各种方法。

使用 Test-Path Cmdlet 检查 PowerShell 中文件夹是否存在

Test-Path cmdlet 判断所有路径元素是否存在。它返回一个布尔值,如果所有元素存在,则为 True,如果任何元素缺失,则为 False

语法:

Test-Path -Path "C:\Path\to\Folder"

参数:

  • -Path:此参数指示您要检查其存在的文件夹或文件的路径。在这种情况下,它设置为 "C:\Path\to\Folder",指示您要检查该路径上是否存在文件夹。

例如,以下命令检查路径 C:\New\complex 的所有元素是否存在。

Test-Path -Path "C:\New\complex"

输出:

True

这意味着 complex 文件夹存在于 C:\New 目录中。

接下来的命令检查 C:\New 目录中是否存在 Documents 文件夹。

Test-Path -Path "C:\New\Documents"

输出:

False

因此,Documents 文件夹不在 C:\New 目录中。

如果您想返回详细信息而不是 True/False,可以使用以下方式的 if 语句。

if (Test-Path -Path "C:\New\Documents") {
    Write-Host "The given folder exists."
}
else {
    Write-Host "The given folder does not exist."
}

在此代码中,我们使用 Test-Path cmdlet 检查文件夹 "C:\New\Documents" 是否存在于系统中。如果文件夹存在,使用 Write-Host 打印 "The given folder exists"

如果文件夹不存在,它将在控制台中打印 "The given folder does not exist"

输出:

The given folder does not exist.

事实证明,"C:\New\Documents" 文件夹在系统中不存在,导致 Test-Path cmdlet 返回 False。我们的代码触发了 else 块,在控制台上显示 "The given folder does not exist." 消息。

此输出准确地表示在系统中未在提供的路径处找到指定的文件夹。

使用 System.IO.Directory 检查 PowerShell 中的文件夹是否存在

.NET Framework 中的 System.IO.Directory 类提供用于创建、移动、删除和枚举目录和子目录的静态方法。您可以使用其 Exists() 方法查看提供的路径是否指向系统中已存在的目录。

如果路径存在,它也会返回 True,如果不存在,则返回 False

[System.IO.Directory]::Exists("C:\New\complex")

输出:

True

[System.IO.Directory]::Exists("C:\New\complex") 未使用任何参数。相反,它直接调用一个方法以检查 PowerShell 中的文件夹是否存在。

现在,让我们检查 C:\New 目录中是否存在 Documents 文件夹。

[System.IO.Directory]::Exists("C:\New\Documents")

在上面的命令中,我们使用名为 "System.IO.Directory" 的 .NET Framework 检查文件夹是否存在。这个工具具有一个名为 "Exists()" 的特性,帮助我们完成这个任务。

我们告诉它查看 "C:\New\Documents" 的位置,并告诉我们那里是否有文件夹。如果找到该文件夹,它将返回 True,但如果文件夹不存在,它将返回 False

输出:

False

输出为 "False"。这意味着 System.IO.Directory::Exists() 表示文件夹 "C:\New\Documents" 在指定路径中不存在。

使用 Get-Item Cmdlet 检查 PowerShell 中的文件夹是否存在

Get-Item 获取给定路径的项目。如果该路径在系统中存在,它将打印该目录的 ModeLastWriteTimeLengthName

Get-Item C:\Users\Public

在此命令中,我们正在检索位于 C:\Users\PublicPublic 文件夹的信息。当我们在 PowerShell 中执行此命令时,控制台将显示有关该文件夹的各种详细信息。

输出:

    Directory: C:\Users


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-r---        10/15/2023   6:35 PM                Public

如果指定的路径不存在,您将收到一个错误信息,说明它不存在,如以下示例所示。

Get-Item C:\Users\Publics

输出:

Get-Item : Cannot find path 'C:\Users\Publics' because it does not exist.
At line:1 char:1
+ Get-Item C:\Users\Publics
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\Users\Publics:String) [Get-Item], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetItemCommand

结论

这些方法提供了在 PowerShell 中检查文件夹存在的不同方式,您可以根据具体需求进行修改。这些技术不仅适用于文件夹,也可以用于检查系统中文件的存在。

我们希望这篇文章给您提供了检查 PowerShell 中文件夹是否存在的思路。

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
作者: 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 Folder