Add-Content
將內容新增到指定的項目,如在檔案中加入文字。
語法
Add-Content [-LiteralPath] <string[]> [-Value] <Object[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]
Add-Content [-Path] <string[]> [-Value] <Object[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]
描述
Add-Content Cmdlet 會將內容附加到指定的項目或檔案。您可以藉由在命令中輸入內容或指定包含該內容之物件的方式,指定此內容。
參數
-Credential <PSCredential>
指定具有執行此動作之權限的使用者帳戶。預設為目前使用者。
請輸入使用者名稱,例如 "User01" 或 "Domain01\User01",或是輸入 PSCredential 物件,例如由 Get-Credential Cmdlet 所產生的物件。如果輸入使用者名稱,將會提示您提供密碼。
所有隨 Windows PowerShell 安裝的提供者都不支援此參數。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
true (ByPropertyName) |
接受萬用字元? |
false |
-Exclude <string[]>
忽略指定的項目。此參數的值用於限定 Path 參數。輸入路徑元素或模式,例如 "*.txt"。允許使用萬用字元。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Filter <string>
指定以提供者的格式或語言表示的篩選器。此參數的值用於限定 Path 參數。篩選器的語法 (包括萬用字元的用法) 依提供者而定。篩選器比其他參數更有效率,因為提供者會在擷取物件時套用篩選器,而非等到 Windows PowerShell 擷取物件後才進行篩選。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Force
覆寫唯讀屬性 (Attribute),讓您可以在唯讀檔案中新增內容。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Include <string[]>
只加入指定的項目。此參數的值用於限定 Path 參數。輸入路徑元素或模式,例如 "*.txt"。允許使用萬用字元。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-LiteralPath <string[]>
指定要接收額外內容的項目所在路徑。LiteralPath 與 Path 不同,係取用實際輸入的內容做為參數值。任何字元均不被解譯成萬用字元。如果路徑中包含逸出字元,請將其置於單引號內。單引號係告訴 Windows PowerShell 不要將任何字元解譯成逸出序列。
必要? |
true |
位置? |
1 |
預設值 |
|
接受管線輸入? |
true (ByPropertyName) |
接受萬用字元? |
false |
-PassThru
傳回代表加入之內容的物件。根據預設,此 Cmdlet 不會產生任何輸出。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Path <string[]>
指定要接收額外內容的項目所在路徑。允許使用萬用字元。若要指定多個路徑,請使用逗號來分隔路徑。
必要? |
true |
位置? |
1 |
預設值 |
|
接受管線輸入? |
true (ByPropertyName) |
接受萬用字元? |
false |
-Value <Object[]>
指定要加入的內容。輸入以引號括住的字串,例如 "這份資料僅供內部使用",或指定包含內容的物件,例如 Get-Date 所產生的 DateTime 物件。
您無法以輸入檔案路徑的方式指定檔案的內容,因為路徑只是字串,但是可以使用 Get-Content 命令,取得內容然後傳遞給 Value 參數。
必要? |
true |
位置? |
2 |
預設值 |
|
接受管線輸入? |
true (ByValue, ByPropertyName) |
接受萬用字元? |
false |
-Confirm
在執行命令前先提示確認。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-WhatIf
說明執行命令時將會發生何種情況,但不會實際執行命令。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-UseTransaction
將命令加入現用交易中。此參數只有當交易進行中時才有效。如需詳細資訊,請參閱 about_Transactions。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
<CommonParameters>
這個 Cmdlet 支援一般參數:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。如需詳細資訊,請參閱 about_Commonparameters.
輸入和輸出
輸入型別是可經由管道輸出至 Cmdlet 的物件型別。傳回型別則是 Cmdlet 所傳回的物件型別。
輸入 |
System.Object 您可以經由管道將要加入的物件 (Value) 輸出至 Add-Content。 |
輸出 |
無或 System.String 當您使用 Passthru 參數時,Add-Content 會產生可代表內容的 System.String 物件。否則,這個 Cmdlet 不會產生任何輸出。 |
附註
當您透過管線將物件傳遞到 Add-Content 時,該物件會先轉換為字串,然後才會加入項目。物件型別會決定字串格式,但是該格式可能會不同於物件的預設顯示。若要控制字串格式,請使用傳送 Cmdlet 的格式化參數。
您也可以利用內建的別名 "ac" 來參照 Add-Content。如需詳細資訊,請參閱 about_Aliases。
Add-Content Cmdlet 設計的用意是要操作任一提供者所公開的資料。若要列出可在工作階段中使用的提供者,請輸入 "Get-PsProvider"。如需詳細資訊,請參閱 about_Providers。
範例 1
C:\PS>add-content -path *.txt -exclude help* -value "END"
描述
-----------
這個命令會將 "END" 新增到目前目錄中的所有文字檔,但是檔案名稱開頭為 "help" 的文字檔除外。
範例 2
C:\PS>add-content -Path file1.log, file2.log -Value (get-date) -passthru
描述
-----------
這個命令會在 File1.log 和 File2.log 檔案結尾新增日期,並接著在命令列上顯示該日期。這個命令會用 Get-Date Cmdlet 取得日期,並用 Value 參數將該日期傳遞給 Add-Content。PassThru 參數會經由管線傳遞可代表加入內容的物件。因為沒有其他 cmdlet 會接收傳遞的物件,因此它會顯示在命令列上。
範例 3
C:\PS>add-content -path monthly.txt -value (get-content c:\rec1\weekly.txt)
描述
-----------
這個命令會將 Weekly.txt 檔案的內容新增到 Monthly.txt 檔案結尾。它會用 Get-Content Cmdlet 取得 Weekly.txt 檔案的內容,並用 Value 參數將 weekly.txt 的內容傳遞給 Add-Content。括號可以確保在 Get-Content 命令先完成,然後 Add-Content 命令才會開始。
您也可以將 Weekly.txt 的內容複製到變數 (例如 $w),接著利用 Value 參數將此變數傳遞給 Add-Content。這樣命令就會是 "add-content -path monthly.txt -value $w"。
範例 4
C:\PS>add-content -value (get-content test.log) -path C:\tests\test134\logs\test134.log
描述
-----------
這個命令會建立新目錄與檔案,並且將現有檔案的內容複製到新建立的檔案中。
這個命令使用 Add-Content Cmdlet 新增內容。Value 參數的值為取得現檔案 (Test.log) 內容的 Get-Content 命令。
路徑參數的值為命令執行時並不存在的路徑。例如,只有 C:\Tests directories 存在。該命令會建立其他的目錄和 Test134.log 檔案。
Force 參數不是這個命令的必要項。即使沒有 Force 參數,Add-Content 也能夠建立目錄完成路徑。
請參閱
概念
about_Providers
Get-Content
Set-Content
Clear-Content
Get-Item