共用方式為


New-Item

建立新專案。

語法

pathSet (預設值)

New-Item
    [-Path] <String[]>
    [-ItemType <String>]
    [-Value <Object>]
    [-Force]
    [-Credential <PSCredential>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

nameSet

New-Item
    [[-Path] <String[]>]
    -Name <String>
    [-ItemType <String>]
    [-Value <Object>]
    [-Force]
    [-Credential <PSCredential>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Description

New-Item Cmdlet 會建立新項目並設定其值。 可以建立的項目類型取決於專案的位置。 例如,在文件系統中,New-Item 建立檔案和資料夾。 在登錄中,New-Item 建立登錄機碼和專案。

New-Item 也可以設定它所建立專案的值。 例如,當它建立新的檔案時,New-Item 可以將初始內容新增至檔案。

範例

範例 1:在目前目錄中建立檔案

此命令會在目前目錄中建立名為 「testfile1.txt」 的文字檔。 Path 參數值中的點 ('.') 表示目前目錄。 Value 參數後面的引號文字會新增至檔案中做為內容。

New-Item -Path . -Name "testfile1.txt" -ItemType "file" -Value "This is a text string."

範例 2:建立目錄

此命令會在 C: 磁碟驅動器中建立名為 「Logfiles」 的目錄。 ItemType 參數會指定新項目是目錄,而不是檔案或其他檔案系統物件。

New-Item -Path "c:\" -Name "logfiles" -ItemType "directory"

範例 3:建立配置檔

此命令會在 $profile 變數所指定的路徑中建立 PowerShell 配置檔。

您可以使用設定檔來自定義 PowerShell。 $profile 是自動 (內建) 變數,可儲存 「CurrentUser/CurrentHost」 設定檔的路徑和檔名。 根據預設,即使 PowerShell 會為其儲存路徑和檔名,配置檔也不存在。

在此命令中,$profile 變數代表檔案的路徑。 ItemType 參數會指定命令建立檔案。 Force 參數可讓您在配置檔路徑中建立檔案,即使路徑中的目錄不存在也一般。

建立設定檔之後,您可以在配置檔中輸入別名、函式和腳本,以自定義殼層。

如需詳細資訊,請參閱 about_Automatic_Variablesabout_Profiles

New-Item -Path $profile -ItemType "file" -Force

範例 4:在不同的目錄中建立目錄

此範例會在 「C:\PS-Test」 目錄中建立新的 Scripts 目錄。

新目錄專案 「Scripts」 的名稱會包含在 Path 參數的值中,而不是在 name的值中指定 。 如語法所示,任一個命令窗體都是有效的。

New-Item -ItemType "directory" -Path "c:\ps-test\scripts"

範例 5:建立多個檔案

此範例會在兩個不同的目錄中建立檔案。 因為 Path 採用多個字串,所以您可以使用它來建立多個專案。

New-Item -ItemType "file" -Path "c:\ps-test\test.txt", "c:\ps-test\Logs\test.log"

範例 6:使用通配符在多個目錄中建立檔案

New-Item Cmdlet 支援 Path 參數中的通配符。 下列命令會在 temp.txt 參數中通配符指定的所有目錄中建立 檔案。

Get-ChildItem -Path C:\Temp\
    Directory:  C:\Temp

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d-----        5/15/2019   6:45 AM        1   One
d-----        5/15/2019   6:45 AM        1   Two
d-----        5/15/2019   6:45 AM        1   Three
New-Item -Path C:\Temp\* -Name temp.txt -ItemType File | Select-Object FullName
FullName
--------
C:\Temp\One\temp.txt
C:\Temp\Three\temp.txt
C:\Temp\Two\temp.txt

Get-ChildItem Cmdlet 會顯示 C:\Temp 目錄下的三個目錄。 使用通配符,New-Item Cmdlet 會在目前目錄下的所有目錄中建立 temp.txt 檔案。 New-Item Cmdlet 會輸出您所建立的專案,此項目會傳送至 Select-Object,以確認新建立檔案的路徑。

範例 7:建立檔案或資料夾的符號連結

此範例會建立目前資料夾中 Notice.txt 檔案的符號連結。

$link = New-Item -ItemType SymbolicLink -Path .\link -Target .\Notice.txt
$link | Select-Object LinkType, Target
LinkType     Target
--------     ------
SymbolicLink {.\Notice.txt}

在此範例中,TargetValue 參數的別名。 符號鏈接的目標可以是相對路徑。 在 PowerShell v6.2 之前,目標必須是完整路徑。

從 PowerShell 7.1 開始,您現在可以使用相對路徑建立至 Windows 上資料夾的 SymbolicLink

範例 8:使用 -Force 參數嘗試重新建立資料夾

此範例會建立內含檔案的資料夾。 然後,嘗試使用 -Force建立相同的資料夾。 它不會覆寫資料夾,但只會傳回現有資料夾物件,並完整建立的檔案。

PS> New-Item -Path .\TestFolder -ItemType Directory
PS> New-Item -Path .\TestFolder\TestFile.txt -ItemType File

PS> New-Item -Path .\TestFolder -ItemType Directory -Force

    Directory: C:\
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----         5/1/2020   8:03 AM                TestFolder

PS> Get-ChildItem .\TestFolder\

    Directory: C:\TestFolder
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----         5/1/2020   8:03 AM              0 TestFile.txt

範例 9:使用 -Force 參數覆寫現有的檔案

此範例會建立具有 值的檔案,然後使用 -Force重新建立檔案。 這會覆蓋現有文件,並且它將丟失其內容,如您通過 length 屬性看到的那樣

PS> New-Item ./TestFile.txt -ItemType File -Value 'This is just a test file'

    Directory: C:\Source\Test
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----         5/1/2020   8:32 AM             24 TestFile.txt

New-Item ./TestFile.txt -ItemType File -Force

    Directory: C:\Source\Test
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----         5/1/2020   8:32 AM              0 TestFile.txt

備註

使用 New-Item 搭配 -Force 參數來建立登錄機碼時,命令的行為會與覆寫檔案時相同。 如果登錄機碼已經存在,則會使用空白登錄機碼覆寫機碼和所有屬性和值。

參數

-Confirm

在執行 Cmdlet 之前,提示您進行確認。

參數屬性

類型:SwitchParameter
預設值:False
支援萬用字元:False
不要顯示:False
別名:cf

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Credential

備註

任何與 PowerShell 一起安裝的提供者都不支援此參數。 若要在執行此 Cmdlet 時模擬其他使用者或提高您的認證,請使用 Invoke-Command

參數屬性

類型:PSCredential
預設值:Current user
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-Force

強制此 Cmdlet 建立可寫入現有唯讀項目的專案。 實作會因提供者而異。 即使使用 Force 參數,Cmdlet 也無法覆寫安全性限制。

參數屬性

類型:SwitchParameter
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-ItemType

指定新專案的提供者指定型別。 此參數的可用值取決於您所使用的目前提供者。

如果您的位置位於 FileSystem 磁碟驅動器中,則允許下列值:

  • 檔案
  • 目錄
  • SymbolicLink
  • 交叉點
  • HardLink

備註

在 Windows 上建立 SymbolicLink 類型需要以系統管理員身分提高許可權。 不過,啟用開發人員模式的 Windows 10 (組建 14972 或更新版本)不再需要提高許可權,才能建立符號連結。

Certificate 磁碟驅動器中,以下是您可以指定的值:

  • 憑證提供者
  • 證書
  • Microsoft Store
  • 商店位置

如需詳細資訊,請參閱 about_Providers

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False
別名:類型

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-Name

指定新項目的名稱。 您可以在 NamePath 參數值中指定新項目的名稱,而且您可以在 NamePath 值中指定新項目的路徑。 使用 Name 參數傳遞的項目名稱會相對於 Path 參數的值來建立。

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

nameSet
Position:Named
必要:True
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-Path

指定新專案位置的路徑。 當省略 path 時,預設值為目前的位置。 您可以在 Name中指定新項目的名稱,或將其包含在 Path中。 使用 Name 參數傳遞的項目名稱會相對於 Path 參數的值來建立。

對於此 Cmdlet,Path 參數的運作方式就像其他 Cmdlet 的 LiteralPath 參數一樣。 不會解譯通配符。 所有字元都會傳遞至位置的提供者。 提供者可能不支援所有字元。 例如,不能創建包含星號 (*) 字元的檔名。

參數屬性

類型:

String[]

預設值:Current location
支援萬用字元:False
不要顯示:False

參數集

pathSet
Position:0
必要:True
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-Value

指定新專案的值。 您也可以使用管線將值傳送至 New-Item

參數屬性

類型:Object
預設值:None
支援萬用字元:False
不要顯示:False
別名:標的

參數集

(All)
Position:Named
必要:False
來自管線的值:True
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-WhatIf

顯示 Cmdlet 執行時會發生什麼事。 指令未執行。

參數屬性

類型:SwitchParameter
預設值:False
支援萬用字元:False
不要顯示:False
別名:無線

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

CommonParameters

此 Cmdlet 支援一般參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters

輸入

Object

您可以使用管線將新專案的值傳送至這個 Cmdlet。

輸出

Object

此 Cmdlet 會傳回它所建立的專案。

備註

New-Item 的設計目的是要處理任何提供者所公開的數據。 若要列出工作階段中可用的提供者,請輸入 Get-PsProvider。 如需詳細資訊,請參閱 about_Providers