Add-Content
ファイルに単語を追加するなど、指定した項目にコンテンツを追加します。
構文
Path (既定)
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>]
LiteralPath
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 パラメーターを使用して指定できます。
例
例 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: 新しいファイルを作成してコンテンツをコピーする
次の使用例は、新しいファイルを作成し、既存のファイルの内容を新しいファイルにコピーします。
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コマンドが実行を完了することが保証されます。 -
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コマンドレットは、パス と ItemType パラメーターを使用して、現在のディレクトリにファイルIsReadOnlyTextFile.txtを作成します。 -
Set-ItemPropertyコマンドレットは、Name パラメーターと Value パラメーターを使用して、ファイルの IsReadOnly プロパティを True に変更します。 -
Get-ChildItemコマンドレットは、ファイルが空 (0) であり、読み取り専用属性 (r) を持っているを示します。 -
Add-Contentコマンドレットは、Path パラメーターを使用してファイルを指定します。 Value パラメーターには、ファイルに追加するテキスト文字列が含まれます。 Force パラメーターは、テキストを読み取り専用ファイルに書き込みます。 -
Get-Contentコマンドレットは、Path パラメーターを使用してファイルの内容を表示します。
読み取り専用属性を削除するには、Set-ItemProperty パラメーターを に設定して、False コマンドを使用します。
例 7: Add-Content でフィルターを使用する
Add-Content コマンドレットにフィルターを指定できます。 フィルターを使用して Path パラメーターを修飾する場合は、パスの内容を示す末尾のアスタリスク (*) を含める必要があります。
次のコマンドは、*.txt ディレクトリ内のすべての C:\Temp ファイルの内容に "Done" という単語を追加します。
Add-Content -Path C:\Temp\* -Filter *.txt -Value "Done"
パラメーター
-AsByteStream
コンテンツをバイト ストリームとして読み取る必要があることを指定します。 このパラメーターは、PowerShell 6.0 で導入されました。
Encoding パラメーターで AsByteStream パラメーターを使用すると、警告が発生します。 AsByteStream パラメーターはエンコードを無視し、出力はバイト ストリームとして返されます。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Confirm
コマンドレットを実行する前に確認を求めるメッセージが表示されます。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | False |
| ワイルドカードのサポート: | False |
| DontShow: | False |
| Aliases: | cf |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Credential
注
このパラメーターは、PowerShell でインストールされているプロバイダーではサポートされていません。 別のユーザーを偽装したり、このコマンドレットの実行時に資格情報を昇格したりするには、Invoke-Commandを使用します。
パラメーターのプロパティ
| 型: | PSCredential |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
-Encoding
ターゲット ファイルのエンコードの種類を指定します。 既定値は utf8NoBOM です。
エンコードは、FileSystem プロバイダーが Add-Content コマンドレットに追加する動的パラメーターです。 このパラメーターは、ファイル システム ドライブでのみ機能します。
このパラメーターに使用できる値は次のとおりです。
-
ascii: ASCII (7 ビット) 文字セットのエンコードを使用します。 -
ansi: 現在のカルチャの ANSI コード ページのエンコーディングを使用します。 このオプションは PowerShell 7.4 で追加されました。 -
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 パラメーターを使用すると、登録済みのコード ページ (-Encoding 1251など) の数値 ID や、登録されたコード ページの文字列名 (-Encoding "windows-1251"など) も使用できます。 詳細については、Encoding.CodePageの .NET ドキュメントを参照してください。
PowerShell 7.4 以降では、Ansi パラメーターの 値を使用して、手動で指定しなくても、現在のカルチャの ANSI コード ページの数値 ID を渡すことができます。
注
UTF-7* を使用することは推奨されなくなりました。 PowerShell 7.1 の時点で、utf7 パラメーターに を指定すると警告が書き込まれます。
パラメーターのプロパティ
| 型: | Encoding |
| 規定値: | UTF8NoBOM |
| 指定可能な値: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Exclude
文字列配列として、このコマンドレットが操作で除外する項目を指定します。 このパラメーターの値は、Path パラメーターを修飾します。 パス要素またはパターン (*.txtなど) を入力します。 ワイルドカード文字を使用できます。
Exclude パラメーターは、コマンドに項目の内容 (C:\Windows\*など) が含まれている場合にのみ有効です。ワイルドカード文字は、C:\Windows ディレクトリの内容を指定します。
パラメーターのプロパティ
| 型: | String[] |
| 規定値: | None |
| ワイルドカードのサポート: | True |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Filter
Path パラメーターを修飾するフィルターを指定します。 FileSystem プロバイダーは、フィルターの使用をサポートする唯一のインストール済み PowerShell プロバイダーです。 FileSystem フィルター言語の構文は about_Wildcardsに記載されています。 フィルターは、取得後に PowerShell でオブジェクトをフィルター処理するのではなく、コマンドレットがオブジェクトを取得するときにプロバイダーによって適用されるため、他のパラメーターよりも効率的です。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | True |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Force
読み取り専用属性をオーバーライドして、読み取り専用ファイルにコンテンツを追加できるようにします。 たとえば、Force は読み取り専用属性をオーバーライドしますが、ファイルのアクセス許可は変更しません。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Include
文字列配列として、このコマンドレットが操作に含める項目を指定します。 このパラメーターの値は、Path パラメーターを修飾します。 パス要素またはパターン ("*.txt"など) を入力します。 ワイルドカード文字を使用できます。
Include パラメーターは、コマンドに項目の内容 (ワイルドカード文字が C:\Windows\* ディレクトリの内容を指定する C:\Windowsなど) が含まれている場合にのみ有効です。
パラメーターのプロパティ
| 型: | String[] |
| 規定値: | None |
| ワイルドカードのサポート: | True |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-LiteralPath
1 つ以上の場所へのパスを指定します。 LiteralPath の値は、入力されたとおりにそのまま使用されます。 ワイルドカードとして解釈される文字はありません。 パスにエスケープ文字が含まれている場合は、単一引用符で囲みます。 単一引用符は、エスケープ シーケンスとして文字を解釈しないように PowerShell に指示します。
詳細については、about_Quoting_Rulesを参照してください。
パラメーターのプロパティ
| 型: | String[] |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
| Aliases: | PSPath, LP |
パラメーター セット
LiteralPath
| 配置: | Named |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
-NoNewline
このコマンドレットがコンテンツに新しい行やキャリッジ リターンを追加しないことを示します。
入力オブジェクトの文字列形式が連結されて出力が形成されます。 出力文字列の間にスペースや改行は挿入されません。 最後の出力文字列の後に改行は追加されません。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-PassThru
追加されたコンテンツを表すオブジェクトを返します。 既定では、このコマンドレットは出力を生成しません。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Path
追加コンテンツを受け取るアイテムへのパスを指定します。 ワイルドカード文字を使用できます。 パスは、コンテナーではなく、項目へのパスである必要があります。 たとえば、ディレクトリへのパスではなく、1 つ以上のファイルへのパスを指定する必要があります。 複数のパスを指定する場合は、コンマを使用してパスを区切ります。
パラメーターのプロパティ
| 型: | String[] |
| 規定値: | None |
| ワイルドカードのサポート: | True |
| DontShow: | False |
パラメーター セット
Path
| 配置: | 0 |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
-Stream
注
このパラメーターは Windows でのみ使用できます。
コンテンツの代替データ ストリームを指定します。 ストリームが存在しない場合は、このコマンドレットによって作成されます。 ワイルドカード文字はサポートされていません。
Stream は、FileSystem プロバイダーが Add-Contentに追加する動的パラメーターです。 このパラメーターは、ファイル システム ドライブでのみ機能します。
Add-Content コマンドレットを使用して、Zone.Identifierなどの代替データ ストリームの内容を変更できます。 ただし、インターネットからダウンロードされたファイルをブロックするセキュリティ チェックを排除する方法として、これはお勧めしません。 ダウンロードしたファイルが安全であることを確認する場合は、Unblock-File コマンドレットを使用します。
このパラメーターは PowerShell 3.0 で導入されました。 PowerShell 7.2 の時点で、Add-Content はファイルとディレクトリの両方で代替データ ストリームをターゲットにすることができます。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Value
追加するコンテンツを指定します。 引用符で囲まれた文字列を入力します (例: このデータは、の内部使用専用です)。または、 生成する Get-Date オブジェクトなどのコンテンツを含むオブジェクトを指定します。
パスは単なる文字列であるため、パスを入力してファイルの内容を指定することはできません。
Get-Content コマンドを使用してコンテンツを取得し、Value パラメーターに渡すことができます。
パラメーターのプロパティ
| 型: | Object[] |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | 1 |
| 必須: | True |
| パイプラインからの値: | True |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
-WhatIf
コマンドレットを実行した場合の動作を示します。 コマンドレットは実行されません。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | False |
| ワイルドカードのサポート: | False |
| DontShow: | False |
| Aliases: | ウィスコンシン |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
CommonParameters
このコマンドレットでは、一般的なパラメーター -Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction、-WarningVariable の各パラメーターがサポートされています。 詳細については、about_CommonParametersを参照してください。
入力
Object
値を Add-Contentにパイプできます。
PSCredential
資格情報を Add-Contentにパイプで渡すことができます。
出力
None
既定では、このコマンドレットは出力を返しません。
String
PassThru パラメーターを使用すると、このコマンドレットはコンテンツを表す System.String オブジェクトを返します。
メモ
PowerShell には、Add-Contentの次のエイリアスが含まれています。
ウィンドウズ:
ac
オブジェクトをパイプ処理して
Add-Contentすると、オブジェクトは項目に追加される前に文字列に変換されます。 オブジェクトの種類によって文字列形式が決まりますが、形式はオブジェクトの既定の表示とは異なる場合があります。 文字列形式を制御するには、送信コマンドレットの書式設定パラメーターを使用します。Add-Contentコマンドレットは、任意のプロバイダーによって公開されるデータを操作するように設計されています。 セッションで使用可能なプロバイダーを一覧表示するには、「Get-PSProvider」と入力します。 詳細については、about_Providersを参照してください。