如何檢查 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 框架中的 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 中的資料夾是否存在有了一些了解。
