Add-Content
指定した項目に内容を追加します。たとえば、ファイルに語を追加します。
構文
Add-Content
[-Path] <string[]>
[-Value] <Object[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-NoNewline]
[-Encoding <Encoding>]
[-AsByteStream]
[-Stream <string>]
[<CommonParameters>]
Add-Content
[-Value] <Object[]>
-LiteralPath <string[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-NoNewline]
[-Encoding <Encoding>]
[-AsByteStream]
[-Stream <string>]
[<CommonParameters>]
説明
コマンドレットは Add-Content
、指定した項目またはファイルにコンテンツを追加します。 コンテンツは、パイプラインから渡すか、 Value パラメーターを使用して指定できます。
次の例でファイルまたはディレクトリを作成する必要がある場合は、「 New-Item」を参照してください。
例
例 1: 例外を含むすべてのテキスト ファイルに文字列を追加する
次の使用例は、現在のディレクトリ内のテキスト ファイルに値を追加しますが、ファイル名に基づいてファイルを除外します。
Add-Content -Path .\*.txt -Exclude help* -Value 'End of file'
Path パラメーターは現在のディレクトリ内のすべての.txt
ファイルを指定しますが、Exclude パラメーターは指定されたパターンに一致するファイル名を無視します。 Value パラメーターは、ファイルに書き込まれるテキスト文字列を指定します。
Get-Content を使用して、これらのファイルの内容を表示します。
例 2: 指定したファイルの末尾に日付を追加する
次の使用例は、現在のディレクトリ内のファイルに日付を追加し、PowerShell コンソールに日付を表示します。
Add-Content -Path .\DateTimeFile1.log, .\DateTimeFile2.log -Value (Get-Date) -PassThru
Get-Content -Path .\DateTimeFile1.log
Tuesday, May 14, 2019 8:24:27 AM
Tuesday, May 14, 2019 8:24:27 AM
5/14/2019 8:24:27 AM
コマンドレットは、 Add-Content
現在のディレクトリに 2 つの新しいファイルを作成します。 Value パラメーターには、コマンドレットの出力がGet-Date
含まれています。 PassThru パラメーターは、追加された内容をパイプラインに出力します。 出力を受け取るコマンドレットは他にないため、PowerShell コンソールに表示されます。 コマンドレットは Get-Content
、 DateTimeFile1.log
更新されたファイル を表示します。
例 3: 指定したファイルの内容を別のファイルに追加する
この例では、ファイルからコンテンツを取得し、その内容を変数に格納します。 変数は、コンテンツを別のファイルに追加するために使用されます。
$From = Get-Content -Path .\CopyFromFile.txt
Add-Content -Path .\CopyToFile.txt -Value $From
Get-Content -Path .\CopyToFile.txt
- コマンドレットは
Get-Content
の内容CopyFromFile.txt
を取得し、その内容を 変数に$From
格納します。 - コマンドレットは
Add-Content
、 変数のCopyToFile.txt
内容を使用してファイルを$From
更新します。 - コマンドレットには
Get-Content
、CopyToFile.txt が表示されます。
例 4: パイプラインを使用して、指定したファイルの内容を別のファイルに追加する
この例では、ファイルからコンテンツを取得し、コマンドレットに Add-Content
パイプします。
Get-Content -Path .\CopyFromFile.txt | Add-Content -Path .\CopyToFile.txt
Get-Content -Path .\CopyToFile.txt
コマンドレットは Get-Content
の内容 CopyFromFile.txt
を取得します。 結果は コマンドレットに Add-Content
パイプされ、 が更新されます CopyToFile.txt
。
最後 Get-Content
のコマンドレットに が表示されます CopyToFile.txt
。
例 5: 新しいファイルをCreateし、コンテンツをコピーする
次の使用例は、新しいファイルを作成し、既存のファイルの内容を新しいファイルにコピーします。
Add-Content -Path .\NewFile.txt -Value (Get-Content -Path .\CopyFromFile.txt)
Get-Content -Path .\NewFile.txt
- コマンドレットは
Add-Content
、Path パラメーターと Value パラメーターを使用して、現在のディレクトリに新しいファイルを作成します。 - コマンドレットは
Get-Content
、既存のファイルの内容を取得し、CopyFromFile.txt
それを Value パラメーターに渡します。 コマンドレットのかっこをGet-Content
使用すると、コマンドが開始される前にコマンドがAdd-Content
完了します。 - コマンドレットは
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
- コマンドレットは
New-Item
、Path パラメーターと ItemType パラメーターを使用して、現在のディレクトリにファイルIsReadOnlyTextFile.txt
を作成します。 - コマンドレットは
Set-ItemProperty
、Name パラメーターと Value パラメーターを使用して、ファイルの IsReadOnly プロパティを True に変更します。 - コマンドレットは
Get-ChildItem
、ファイルが空0
() であり、読み取り専用属性 (r
) があることを示します。 - コマンドレットは
Add-Content
、Path パラメーターを使用してファイルを指定します。 Value パラメーターには、ファイルに追加するテキスト文字列が含まれています。 Force パラメーターは、テキストを読み取り専用ファイルに書き込みます。 - コマンドレットは
Get-Content
、Path パラメーターを使用してファイルの内容を表示します。
読み取り専用属性を削除するには、Value パラメーターを Set-ItemProperty
に設定して コマンドをFalse
使用します。
例 7: Add-Content でフィルターを使用する
コマンドレットにフィルターを Add-Content
指定できます。 フィルターを使用して Path パラメーターを修飾する場合は、パスの内容を示す末尾のアスタリスク (*
) を含める必要があります。
次のコマンドは、ディレクトリ内のすべての *.txt
ファイルの内容を "完了" という単語を C:\Temp
追加します。
Add-Content -Path C:\Temp\* -Filter *.txt -Value "Done"
パラメーター
-AsByteStream
コンテンツをバイト ストリームとして読み取る必要があることを指定します。 このパラメーターは、PowerShell 6.0 で導入されました。
AsByteStream パラメーターを Encoding パラメーターと共に使用すると、警告が発生します。 AsByteStream パラメーターはエンコードを無視し、出力はバイト ストリームとして返されます。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
コマンドレットの実行前に確認を求めるメッセージが表示されます。
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
注意
このパラメーターは、PowerShell でインストールされているプロバイダーではサポートされていません。 別のユーザーを偽装したり、このコマンドレットの実行時に資格情報を昇格させたりするには、 Invoke-Command を使用します。
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Encoding
ターゲット ファイルのエンコードの種類を指定します。 既定値は utf8NoBOM
です。
Encoding は、FileSystem プロバイダーがコマンドレットに追加する Add-Content
動的パラメーターです。 このパラメーターはファイル システム ドライブでのみ機能します。
このパラメーターに使用できる値は次のとおりです。
ascii
: ASCII (7 ビット) 文字セットのエンコードを使用します。bigendianunicode
: ビッグ エンディアンのバイト順を使用して UTF-16 形式でエンコードします。bigendianutf32
: ビッグ エンディアンのバイト順を使用して UTF-32 形式でエンコードします。oem
: MS-DOS およびコンソール プログラムの既定のエンコードを使用します。unicode
: リトル エンディアンバイト順を使用して UTF-16 形式でエンコードします。utf7
: UTF-7 形式でエンコードします。utf8
: UTF-8 形式でエンコードします。utf8BOM
: バイト オーダー マーク (BOM) を使用して UTF-8 形式でエンコードしますutf8NoBOM
: バイト オーダー マーク (BOM) を使用せずに UTF-8 形式でエンコードしますutf32
: UTF-32 形式でエンコードします。
PowerShell 6.2 以降では、 Encoding パラメーターを使用すると、登録済みコード ページの数値 ID (など -Encoding 1251
) または登録済みコード ページの文字列名 (など -Encoding "windows-1251"
) も許可されます。 詳細については、 Encoding.CodePage の .NET ドキュメントを参照してください。
注意
UTF-7* の使用は推奨されなくなりました。 PowerShell 7.1 以降では、Encoding パラメーターに を指定utf7
すると警告が書き込まれます。
Type: | Encoding |
Accepted values: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Default value: | UTF8NoBOM |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Exclude
文字列配列として、このコマンドレットが操作で除外する項目を指定します。 このパラメーターの値は、Path パラメーターを修飾します。 などのパス要素またはパターンを *.txt
入力します。 ワイルドカード文字を使用できます。 Exclude パラメーターは、コマンドに などのC:\Windows\*
項目の内容が含まれている場合にのみ有効です。ワイルドカード文字はディレクトリの内容をC:\Windows
指定します。
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Filter
Path パラメーターを修飾するフィルターを指定します。 FileSystem プロバイダーは、フィルターの使用をサポートする唯一のインストール済み PowerShell プロバイダーです。 FileSystem フィルター言語の構文は、about_Wildcardsにあります。 フィルターは、取得後に 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"
入力します。 ワイルドカード文字を使用できます。 Include パラメーターは、コマンドに などのC:\Windows\*
項目の内容が含まれている場合にのみ有効です。ワイルドカード文字はディレクトリの内容をC:\Windows
指定します。
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-LiteralPath
1 つ以上の場所へのパスを指定します。 LiteralPath の値は、型指定されたとおりに使用されます。 ワイルドカードとして解釈される文字はありません。 パスにエスケープ文字が含まれている場合は、単一引用符で囲みます。 単一引用符は、文字をエスケープ シーケンスとして解釈しないように PowerShell に指示します。
詳細については、「 about_Quoting_Rules」を参照してください。
Type: | String[] |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NoNewline
このコマンドレットが新しい行または復帰をコンテンツに追加しないことを示します。
入力オブジェクトの文字列表現が連結され、出力が形成されます。 出力文字列の間にスペースや改行は挿入されません。 最後の出力文字列の後に改行は追加されません。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PassThru
追加された内容を表すオブジェクトを返します。 既定では、このコマンドレットは出力を生成しません。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
内容を追加する項目へのパスを指定します。 ワイルドカード文字を使用できます。 コンテナーのパスではなく、項目のパスを指定してください。 たとえば、ディレクトリのパスではなく、1 つ以上のファイルのパスを指定する必要があります。 複数のパスを指定する場合は、各パスをコンマで区切ります。
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-Stream
注意
このパラメーターは、Windows でのみ使用できます。
コンテンツの代替データ ストリームを指定します。 ストリームが存在しない場合は、このコマンドレットによって作成されます。 ワイルドカード文字はサポートされていません。
Streamは、FileSystem プロバイダーが に追加するAdd-Content
動的パラメーターです。 このパラメーターはファイル システム ドライブでのみ機能します。
コマンドレットを Add-Content
使用して、 などの Zone.Identifier
代替データ ストリームの内容を変更できます。 ただし、インターネットからダウンロードされたファイルをブロックするセキュリティ チェックを排除する方法として、これをお勧めしません。 ダウンロードしたファイルが安全であることを確認する場合は、 コマンドレットを使用します Unblock-File
。
このパラメーターは、PowerShell 3.0 で導入されました。 PowerShell 7.2 以降では、 Add-Content
ファイルとディレクトリの両方で代替データ ストリームをターゲットにすることができます。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Value
追加する内容を指定します。 [ このデータは内部使用専用です] などの引用符で囲まれた文字列を入力するか、生成する DateTime オブジェクトなどのコンテンツを含むオブジェクトを Get-Date
指定します。
パスは単なる文字列であるため、パスを入力してファイルの内容を指定することはできません。
コマンドを Get-Content
使用してコンテンツを取得し、 Value パラメーターに渡すことができます。
Type: | Object[] |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
コマンドレットの実行時に発生する内容を示します。 コマンドレットは実行されません。
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
入力
値を に Add-Content
パイプできます。
資格情報を に Add-Content
パイプできます。
出力
None
既定では、このコマンドレットは出力を返しません。
PassThru パラメーターを使用すると、このコマンドレットはコンテンツを表す System.String オブジェクトを返します。
メモ
PowerShell には、 の次のエイリアスが Add-Content
含まれています。
Windows の場合:
ac
オブジェクトを に
Add-Content
パイプ処理すると、オブジェクトは項目に追加される前に文字列に変換されます。 オブジェクト型によって文字列の形式が決まりますが、オブジェクトの既定の表示形式と異なる場合があります。 文字列の形式を制御するには、送信コマンドレットの書式設定パラメーターを使用します。コマンドレットは
Add-Content
、任意のプロバイダーによって公開されるデータを操作するように設計されています。 セッションで使用できるプロバイダーを一覧表示するには、「」と入力しますGet-PSProvider
。 詳細については、「about_Providers」を参照してください。