使用 Windows PowerShell 建立目錄

Marion Paul Kenneth Mendoza 2023年1月30日 2022年5月16日
  1. 在 PowerShell 中使用 [System.IO] 名稱空間建立目錄
  2. 在 PowerShell 中使用檔案系統物件建立目錄
  3. 在 PowerShell 中使用 New-Item Cmdlet 建立目錄
  4. 在 PowerShell 中使用 md Legacy 命令建立目錄
使用 Windows PowerShell 建立目錄

在 Windows PowerShell 中,有多種方法可以建立可以完全整合到指令碼中的檔案目錄或資料夾。本文將展示如何使用 Windows PowerShell 建立它們。

在 PowerShell 中使用 [System.IO] 名稱空間建立目錄

使用 system.io 名稱空間中的目錄 .NET 框架類是可能的。要使用 Directory 類,請使用 CreateDirectory 靜態方法並提供新資料夾位置的路徑。

此處顯示了此技術。

[System.IO.Directory]::CreateDirectory("C:\test\newfolder")

當上面的命令執行時,它返回一個 DirectoryInfo 類。但是,我們不一定推薦這種方法,但它目前正在執行並且可用。

在 PowerShell 中使用檔案系統物件建立目錄

建立目錄的另一種方法是使用 Windows PowerShell 中的 Scripting.FileSystemObject 物件。

此方法與 VBScript 和其他指令碼語言用於處理檔案系統的物件相同。它快速且相對易於使用。

建立物件後,Scripting.FileSystemObject 公開一個 CreateFolder 方法。CreateFolder 方法接受一個字串,表示建立資料夾的路徑。

執行後,一個物件包含了新建立的目錄的路徑和其他資訊。

$fso = New-Object -ComObject Scripting.FileSystemObject
$fso.CreateFolder('C:\test1')

在 PowerShell 中使用 New-Item Cmdlet 建立目錄

本機 Windows PowerShell 命令也可用於建立目錄。一種方法是使用 New-Item cmdlet。

New-Item -Force -Path c:\test3 -ItemType Directory

使用時,-Force 開關引數將覆蓋已建立的現有資料夾。相反,我們可以使用 Test-Path cmdlet 來檢查目錄是否存在。

在下面的示例中,我們可以建立一個指令碼塊來檢查目錄是否存在。如果目錄存在,則不會建立目錄。

這種語法是避免 -Force 開關引數的一種方法。

$path = "C:\temp\NewFolder"

if(!(test-path $path))
{
      New-Item -ItemType Directory -Path $path
}

假設我們將此命令的輸出與前一個 .NET 命令的輸出進行比較。結果是一樣的,因為 New-Item cmdlet 和 [System.IO.Directory]::CreateDirectory 命令返回一個 DirectoryInfo 物件。

也可以通過省略 -Path 引數名稱並僅提供完整路徑作為具有 ItemType 語法的資料型別字串來縮短 New-Item 命令。此處顯示了此修改後的命令。

New-Item c:\test4 -ItemType directory

有些人可能會抱怨在老式的命令直譯器 cmd 中建立目錄更容易,因為他們只需要鍵入 md——而鍵入 md 無疑比鍵入 New-Item 命令更容易。

在 PowerShell 中使用 md Legacy 命令建立目錄

前面的示例介紹了使用 Windows PowerShell 使用 md 函式建立目錄(資料夾)的第四種方法。

使用 md 命令的優點是速度更快,因為它已經知道你將建立一個目錄。因此,你可以保留 ItemType 引數並直接鍵入完整路徑。

md c:\test5
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

相關文章 - PowerShell Directory