如何檢查 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 框架中的 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 取得給定路徑的項目。如果該路徑在系統上存在,它將打印目錄的 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