如何檢查 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
框架中的 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 框架來檢查資料夾是否存在。這個工具有一個名為 "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 中的資料夾是否存在有了一些了解。