共用方式為


New-Item

建立新專案。

語法

pathSet (Default) - All providers

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

nameSet - All providers

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

pathSet (Default) - WSMan provider

New-Item
    [-Path] <string[]>
    -ConnectionURI <uri>
    [-ItemType <string>]
    [-Value <Object>]
    [-Force]
    [-Credential <pscredential>]
    [-WhatIf]
    [-Confirm]
    [-OptionSet <hashtable>]
    [-Authentication <AuthenticationMechanism>]
    [-CertificateThumbprint <string>]
    [-SessionOption <SessionOption>]
    [-Port <int>]
    [<CommonParameters>]

nameSet - WSMan provider

New-Item
    [[-Path] <string[]>]
    -Name <string>
    [-ItemType <string>]
    [-Value <Object>]
    [-Force]
    [-Credential <pscredential>]
    [-WhatIf]
    [-Confirm]
    [-OptionSet <hashtable>]
    [-Authentication <AuthenticationMechanism>]
    [-CertificateThumbprint <string>]
    [-SessionOption <SessionOption>]
    [-ApplicationName <string>]
    [-Port <int>]
    [-UseSSL]
    [<CommonParameters>]

pathSet (Default) - Alias provider

New-Item
    [-Path] <string[]>
    [-ItemType <string>]
    [-Value <Object>]
    [-Force]
    [-Credential <pscredential>]
    [-WhatIf]
    [-Confirm]
    [-Options <ScopedItemOptions>]
    [<CommonParameters>]

nameSet - Alias provider

New-Item
    [[-Path] <string[]>]
    -Name <string>
    [-ItemType <string>]
    [-Value <Object>]
    [-Force]
    [-Credential <pscredential>]
    [-WhatIf]
    [-Confirm]
    [-Options <ScopedItemOptions>]
    [<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 參數來建立登錄機碼時,命令的行為會與覆寫檔案時的行為相同。 如果登錄機碼已經存在,則會使用空白登錄機碼覆寫機碼和所有屬性和值。

參數

-ApplicationName

這是由 WSMan 提供者提供的動態參數。 WSMan 提供者,此參數僅適用於 Windows。

指定連接中的應用程式名稱。 ApplicationName 參數的預設值 WSMAN

如需詳細資訊,請參閱 New-WSManInstance

參數屬性

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

參數集

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

-Authentication

這是由 WSMan 提供者提供的動態參數。 WSMan 提供者,此參數僅適用於 Windows。

指定要在伺服器上使用的驗證機制。

如需詳細資訊,請參閱 New-WSManInstance

參數屬性

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

參數集

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

-CertificateThumbprint

這是由 WSMan 提供者提供的動態參數。 WSMan 提供者,此參數僅適用於 Windows。

指定具有執行此 WSMan 動作許可權之用戶帳戶的數位公鑰憑證 (X509)。 輸入憑證的指紋。

如需詳細資訊,請參閱 New-WSManInstance

參數屬性

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

參數集

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

-Confirm

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

參數屬性

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

參數集

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

-ConnectionURI

這是由 WSMan 提供者提供的動態參數。 WSMan 提供者,此參數僅適用於 Windows。

指定 WSMan 的連接端點。

如需詳細資訊,請參閱 New-WSManInstance

參數屬性

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

參數集

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

-Credential

備註

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

參數屬性

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

參數集

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

-Force

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

從 PowerShell 7.4 開始,此參數也可讓您覆寫現有的連接點。 先前,這會因為「無法移除,因為它不是空的」錯誤而失敗。

參數屬性

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

參數集

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

-ItemType

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

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

  • File
  • Directory
  • SymbolicLink
  • Junction
  • HardLink

備註

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

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

  • Certificate Provider
  • Certificate
  • Store
  • StoreLocation

如需詳細資訊,請參閱 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

-Options

這是 別名 提供者所提供的動態參數。 如需詳細資訊,請參閱 New-Alias

指定別名的 Options 屬性值。

有效值為:

  • None:別名沒有條件約束(預設值)
  • ReadOnly:可以刪除別名,但無法使用 Force 參數來變更
  • Constant:無法刪除或變更別名
  • Private:別名只能在目前的範圍內使用
  • AllScope:別名會自動複製到任何新建立的範圍中
  • Unspecified:未指定選項

參數屬性

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

參數集

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

-OptionSet

這是由 WSMan 提供者提供的動態參數。 WSMan 提供者,此參數僅適用於 Windows。

將一組開關傳遞至服務,以修改或優化請求的特性。

如需詳細資訊,請參閱 New-WSManInstance

參數屬性

類型:Hashtable
預設值:None
支援萬用字元:False
不要顯示:False
別名:作業系統

參數集

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

-Path

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

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

參數屬性

類型:

String[]

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

參數集

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

-Port

這是由 WSMan 提供者提供的動態參數。 WSMan 提供者,此參數僅適用於 Windows。

指定客戶端連線到 WinRM 服務時要使用的埠。

如需詳細資訊,請參閱 New-WSManInstance

參數屬性

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

參數集

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

-SessionOption

這是由 WSMan 提供者提供的動態參數。 WSMan 提供者,此參數僅適用於 Windows。

定義一組 WS-Management 會話的擴充選項。

如需詳細資訊,請參閱 New-WSManInstance

參數屬性

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

參數集

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

-UseSSL

這是由 WSMan 提供者提供的動態參數。 WSMan 提供者,此參數僅適用於 Windows。

指定安全套接字層 (SSL) 通訊協議應該用來建立與遠端電腦的連線。 根據預設,不會使用 SSL。

如需詳細資訊,請參閱 New-WSManInstance

參數屬性

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

參數集

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

-Value

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

參數屬性

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

參數集

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

-WhatIf

顯示 Cmdlet 執行時會發生什麼事。 該 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。

輸出

DictionaryEntry

Cmdlet 會在建立新的環境變數時,傳回 DictionaryEntry 物件。

DirectoryInfo

Cmdlet 會在文件系統中建立新目錄時,傳回 DirectoryInfo 物件。

FileInfo

Cmdlet 會在文件系統中建立新檔案時,傳回 FileInfo 物件。

AliasInfo

Cmdlet 會在建立新的別名時傳回 AliasInfo 物件。

FunctionInfo

Cmdlet 會在建立新函式時傳回 FunctionInfo 物件。

PSVariable

Cmdlet 會在建立新變數時傳回 PSVariable 物件。

備註

PowerShell 包含下列 New-Item的別名:

  • 所有平臺:
    • ni

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