共用方式為


Add-Content

新增內容至指定的項目,例如將文字新增到檔案。

Syntax

Add-Content
   [-Path] <string[]>
   [-Value] <Object[]>
   [-PassThru]
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Force]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [-UseTransaction]
   [-NoNewline]
   [-Encoding <FileSystemCmdletProviderEncoding>]
   [-Stream <string>]
   [<CommonParameters>]
Add-Content
   [-Value] <Object[]>
   -LiteralPath <string[]>
   [-PassThru]
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Force]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [-UseTransaction]
   [-NoNewline]
   [-Encoding <FileSystemCmdletProviderEncoding>]
   [-Stream <string>]
   [<CommonParameters>]

Description

Cmdlet 會將 Add-Content 內容附加至指定的項目或檔案。 您可以在命令中輸入內容或透過指定包含內容的物件指定內容。

如果您需要為下列範例建立檔案或目錄,請參閱 New-Item

範例

範例 1:將字串新增至所有文本檔,但有例外狀況

本範例會將值附加至目前目錄中的文本檔,但會根據其檔名排除檔案。

Add-Content -Path .\*.txt -Exclude help* -Value 'End of file'

Cmdlet Add-Content 會使用 Path 參數來指定目前目錄中的所有 .txt 檔案。 Exclude 參數會忽略符合指定模式的檔名。 Value 參數會指定寫入檔案的文字字串。

使用 Get-Content 來顯示這些檔案的內容。

範例 2:將日期新增至指定檔案的結尾

本範例會將日期附加至目前目錄中的檔案,並在 PowerShell 控制台中顯示日期。

Add-Content -Path .\DateTimeFile1.log, .\DateTimeFile2.log -Value (Get-Date) -PassThru
Get-Content -Path .\DateTimeFile1.log

Cmdlet 會 Add-Content 使用 PathValue 參數,在目前目錄中建立兩個新的檔案。 Value 參數會Get-Date指定要取得日期的 Cmdlet,並將日期傳遞至 Add-Content。 Cmdlet 會將 Add-Content 日期寫入每個檔案。 PassThru 參數會傳遞代表日期對象的物件。 因為沒有其他 Cmdlet 可接收傳遞的物件,所以會顯示在 PowerShell 控制台中。 Cmdlet Get-Content 會顯示更新的檔案,DateTimeFile1.log。

範例 3:將指定檔案的內容新增至另一個檔案

本範例會從檔案取得內容,並將該內容附加至另一個檔案。

Add-Content -Path .\CopyToFile.txt -Value (Get-Content -Path .\CopyFromFile.txt)
Get-Content -Path .\CopyToFile.txt

Cmdlet Add-Content 會使用 Path 參數來指定目前目錄中的新檔案,CopyToFile.txt。 Value 參數會Get-Content使用 Cmdlet 來取得檔案的內容,CopyFromFile.txt。 Cmdlet 周圍的 Get-Content 括號可確保命令在命令開始之前 Add-Content 完成。 Value 參數會傳遞至 Add-Content。 Cmdlet 會將 Add-Content 數據附加至 CopyToFile.txt 檔案。 Cmdlet Get-Content 會顯示更新的檔案,CopyToFile.txt。

範例 4:使用變數將指定檔案的內容新增至另一個檔案

本範例會從檔案取得內容,並將內容儲存在變數中。 變數用來將內容附加至另一個檔案。

$From = Get-Content -Path .\CopyFromFile.txt
Add-Content -Path .\CopyToFile.txt -Value $From
Get-Content -Path .\CopyToFile.txt

Cmdlet Get-Content 會取得 CopyFromFile.txt 的內容,並將內容儲存在變數中 $From 。 Cmdlet Add-Content 會使用 Path 參數來指定目前目錄中的 CopyToFile.txt 檔案。 Value 參數會$From使用 變數,並將內容傳遞至 Add-Content。 Cmdlet Add-Content 會更新 CopyToFile.txt 檔案。 Cmdlet Get-Content 會顯示 CopyToFile.txt。

範例 5:Create 新的檔案並複製內容

本範例會建立新的檔案,並將現有檔案的內容複製到新檔案中。

Add-Content -Path .\NewFile.txt -Value (Get-Content -Path .\CopyFromFile.txt)
Get-Content -Path .\NewFile.txt

Cmdlet Add-Content 會使用 PathValue 參數,在目前目錄中建立新的檔案。 Value 參數會Get-Content使用 Cmdlet 來取得現有檔案的內容,CopyFromFile.txt。 Cmdlet 周圍的 Get-Content 括號可確保命令在命令開始之前 Add-Content 完成。 Value 參數會傳遞更新 NewFile.txt 檔案的內容Add-Content。 Cmdlet Get-Content 會顯示新檔案的內容,NewFile.txt。

範例 6:將內容新增至唯讀檔案

此命令會將值新增至檔案,即使 IsReadOnly 檔案屬性設定為True也一樣。 建立唯讀檔案的步驟包含在範例中。

New-Item -Path .\IsReadOnlyTextFile.txt -ItemType File
Set-ItemProperty -Path .\IsReadOnlyTextFile.txt -Name IsReadOnly -Value $True
Get-ChildItem -Path .\IsReadOnlyTextFile.txt
Add-Content -Path .\IsReadOnlyTextFile.txt -Value 'Add value to read-only text file' -Force
Get-Content -Path .\IsReadOnlyTextFile.txt

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-ar---        1/28/2019     13:35              0 IsReadOnlyTextFile.txt

Cmdlet New-Item 會使用 PathItemType 參數,在目前目錄中建立檔案 IsReadOnlyTextFile.txt。 Cmdlet Set-ItemProperty 會使用 NameValue 參數,將檔案的 IsReadOnly 屬性變更為 True。 Cmdlet Get-ChildItem 會顯示檔案是空的 (0) ,而且具有只讀屬性 (r) 。 Cmdlet Add-Content 會使用 Path 參數來指定檔案。 Value 參數包含要附加至檔案的文字字串。 Force 參數會將文字寫入唯讀檔案。 Cmdlet Get-Content 會使用 Path 參數來顯示檔案的內容。

若要移除唯讀屬性,請使用 Set-ItemProperty 命令,並將 Value 參數設定為 False

參數

-Confirm

在執行 Cmdlet 前提示您確認。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

指定具有執行此動作權限的使用者帳戶。 預設為目前使用者。

輸入用戶名稱,例如 User01Domain01\User01,或輸入 PSCredential 物件,例如 Cmdlet 所產生的 Get-Credential 物件。 若您輸入使用者名稱,將會提示您輸入密碼。

警告

任何隨 PowerShell 一起安裝的提供者都不支援此參數。

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Encoding

指定目標檔案的編碼類型。 預設值為 Default

此參數可接受的值如下所示:

  • Ascii 使用 ASCII (7 位) 字元集。
  • BigEndianUnicode 使用UTF-16搭配大位元節順序。
  • BigEndianUTF32 使用UTF-32搭配大位元節順序。
  • 位元組 將一組字元編碼為位元組序列。
  • 預設 使用對應至系統使用中代碼頁的編碼方式, (通常是 ANSI) 。
  • Oem 使用對應至系統目前 OEM 代碼頁的編碼方式。
  • 字串Unicode 相同。
  • Unicode 使用UTF-16搭配小到尾位元組順序。
  • 未知Unicode 相同。
  • UTF7 使用UTF-7。
  • UTF8 使用UTF-8。
  • UTF32 使用UTF-32搭配小到尾位元組順序。

編碼是 FileSystem 提供者新增至 Cmdlet 的 Add-Content 動態參數。 此參數只適用於檔案系統磁碟機。

Type:FileSystemCmdletProviderEncoding
Accepted values:ASCII, BigEndianUnicode, BigEndianUTF32, Byte, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32
Position:Named
Default value:Default
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Exclude

省略指定的項目。 此參數的值會限定 Path 參數。 輸入路徑專案或模式,例如 *.txt。 允許使用萬用字元。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Filter

以提供者的格式或語言指定篩選。 此參數的值會限定 Path 參數。 篩選的語法 (包括是否使用萬用字元) 取決於提供者。 篩選 比其他參數更有效率,因為提供者會在擷取物件時套用篩選。 否則,PowerShell 會在擷取對象之後處理篩選。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Force

覆寫唯讀屬性,可讓您新增內容至唯讀檔案。 例如,Force 會覆寫唯讀屬性或建立目錄來完成檔案路徑,但不會嘗試變更檔案權限。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Include

只新增指定的項目。 此參數的值會限定 Path 參數。 輸入路徑專案或模式,例如 *.txt。 允許使用萬用字元。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-LiteralPath

指定要接收其他內容的項目路徑。 與 Path 不同,LiteralPath 的值將完全依照其輸入值來使用。 沒有字元會被視為萬用字元。 如果路徑包含逸出字元,請將它括在單引號中。 單引號會指示PowerShell不要將任何字元解譯為逸出序列。

Type:String[]
Aliases:PSPath
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-NoNewline

表示此 Cmdlet 不會將新行或歸位字元新增至內容。

輸入物件的字串表示會串連以形成輸出。 輸出字串之間不會插入空格或換行符。 最後一個輸出字串之後不會新增任何換行符。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PassThru

傳回代表新增內容的物件。 根據預設,此 Cmdlet 不會產生任何輸出。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

指定要接收其他內容的項目路徑。 允許使用萬用字元。 如果您指定多個路徑,請使用逗號來分隔路徑。

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-Stream

指定內容的替代數據流。 如果數據流不存在,此 Cmdlet 會建立它。 不支援萬用字元。

Stream 是 FileSystem 提供者新增至 Add-Content的動態參數。 此參數只適用於檔案系統磁碟機。

您可以使用 Add-Content Cmdlet 來變更 Zone.Identifier 替代數據流的內容。 不過,我們不建議這麼做,以排除封鎖從因特網下載之檔案的安全性檢查。 如果您確認下載的檔案是安全的,請使用 Unblock-File Cmdlet。

此參數是在 PowerShell 3.0 中引進。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseTransaction

將命令加入使用中交易。 只有交易為處理中狀態時,此參數才有效。 如需詳細資訊,請參閱 about_Transactions

Type:SwitchParameter
Aliases:usetx
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Value

指定要新增的內容。 輸入引號字串,例如此數據僅供內部使用,或指定包含內容的物件,例如產生的 Get-DateDateTime 物件。

您無法輸入檔案的路徑來指定檔案的內容,因為路徑只是字串。 您可以使用 Get-Content 命令來取得內容,並將它傳遞至 Value 參數。

Type:Object[]
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

顯示執行 Cmdlet 後會發生的情況。 Cmdlet 並不會執行。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

輸入

System.Object, System.Management.Automation.PSCredential

您可以使用管線將值、路徑或認證傳送至 Set-Content

輸出

None or System.String

當您使用 PassThru 參數時, Add-Content 會產生 代表內容的 System.String 物件。 否則,此 Cmdlet 不會產生任何輸出。

備註

當您使用管線將 對象傳送至 Add-Content時,物件會先轉換成字串,再將它新增至專案。 物件類型決定字串格式,但是格式可能會不同於物件的預設顯示。 若要控制字串格式,請使用傳送 Cmdlet 的格式化參數。

您也可以透過其內建別名 ac來參考 Add-Content 。 如需詳細資訊,請參閱 about_Aliases

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