如何检查 PowerShell 中的文件夹是否存在
-
使用
Test-PathCmdlet 检查 PowerShell 中文件夹是否存在 -
使用
System.IO.Directory检查 PowerShell 中的文件夹是否存在 -
使用
Get-ItemCmdlet 检查 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 获取给定路径的项目。如果该路径在系统中存在,它将打印该目录的 Mode、LastWriteTime、Length 和 Name。
Get-Item C:\Users\Public
在此命令中,我们正在检索位于 C:\Users\Public 的 Public 文件夹的信息。当我们在 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 中文件夹是否存在的思路。
