如何检查 PowerShell 中的文件夹是否存在
-
使用
Test-Path
Cmdlet 检查 PowerShell 中文件夹是否存在 -
使用
System.IO.Directory
检查 PowerShell 中的文件夹是否存在 -
使用
Get-Item
Cmdlet 检查 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 中文件夹是否存在的思路。