Add-Content
ファイルに単語を追加するなど、指定した項目にコンテンツを追加します。
構文
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>]
説明
Add-Content
コマンドレットは、指定した項目またはファイルにコンテンツを追加します。 コンテンツを指定するには、コマンドにコンテンツを入力するか、コンテンツを含むオブジェクトを指定します。
例
例 1: 例外を含むすべてのテキスト ファイルに文字列を追加する
次の使用例は、現在のディレクトリ内のテキスト ファイルに値を追加しますが、ファイル名に基づいてファイルを除外します。
Add-Content -Path .\*.txt -Exclude help* -Value 'End of file'
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
Add-Content
コマンドレットは、Path パラメーターと Value パラメーターを使用して、現在のディレクトリに 2 つの新しいファイルを作成します。
Value パラメーターは、日付を取得する Get-Date
コマンドレットを指定し、日付を Add-Content
に渡します。
Add-Content
コマンドレットは、各ファイルに日付を書き込みます。
PassThru パラメーターは、日付オブジェクトを表すオブジェクトを渡します。 渡されたオブジェクトを受け取るコマンドレットは他にないため、PowerShell コンソールに表示されます。
Get-Content
コマンドレットは、更新されたファイル (DateTimeFile1.log) を表示します。
例 3: 指定したファイルの内容を別のファイルに追加する
この例では、ファイルからコンテンツを取得し、そのコンテンツを別のファイルに追加します。
Add-Content -Path .\CopyToFile.txt -Value (Get-Content -Path .\CopyFromFile.txt)
Get-Content -Path .\CopyToFile.txt
Add-Content
コマンドレットは、Path パラメーターを使用して、現在のディレクトリ内の新しいファイル CopyToFile.txtを指定します。
Value パラメーターは、Get-Content
コマンドレットを使用して、ファイルの内容 (CopyFromFile.txt) を取得します。
Get-Content
コマンドレットを囲むかっこによって、Add-Content
コマンドが開始する前にGet-Content
コマンドが実行を完了することが保証されます。
Value パラメータは Add-Content
に渡されます。
Add-Content
コマンドレットは、データを CopyToFile.txt ファイルに追加します。
Get-Content
コマンドレットは、更新されたファイル CopyToFile.txt.
例 4: 変数を使用して、指定したファイルの内容を別のファイルに追加する
この例では、ファイルからコンテンツを取得し、その内容を変数に格納します。 この変数は、コンテンツを別のファイルに追加するために使用されます。
$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
コマンドレットは、Path パラメーターを使用して、現在のディレクトリ内の CopyToFile.txt ファイルを指定します。
Value パラメーターは $From
変数を使用し、コンテンツを Add-Content
に渡します。
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 パラメーターを使用して、現在のディレクトリに新しいファイルを作成します。
Value パラメーターは、Get-Content
コマンドレットを使用して、既存のファイル CopyFromFile.txtの内容を取得します。
Get-Content
コマンドレットを囲むかっこによって、Add-Content
コマンドが開始する前にGet-Content
コマンドが実行を完了することが保証されます。
Value パラメータは、NewFile.txt ファイルを更新する 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 パラメーターを使用してファイルの内容を表示します。
読み取り専用属性を削除するには、Set-ItemProperty
パラメーターを に設定して、False
コマンドを使用します。
パラメーター
-Confirm
コマンドレットを実行する前に確認を求めるメッセージが表示されます。
型: | SwitchParameter |
Aliases: | cf |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Credential
このアクションを実行するアクセス許可を持つユーザー アカウントを指定します。 既定値は現在のユーザーです。
User01 や Domain01\User01などのユーザー名を入力するか、 コマンドレットによって生成された Get-Credential
オブジェクトを入力します。 ユーザー名を入力すると、パスワードの入力を促すメッセージが表示されます。
Warnung
このパラメーターは、PowerShell でインストールされているプロバイダーではサポートされていません。
型: | PSCredential |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | 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 プロバイダーが Add-Content
コマンドレットに追加する動的パラメーターです。 このパラメーターは、ファイル システム ドライブでのみ機能します。
型: | FileSystemCmdletProviderEncoding |
指定可能な値: | ASCII, BigEndianUnicode, BigEndianUTF32, Byte, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32 |
配置: | Named |
規定値: | Default |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Exclude
指定した項目を省略します。 このパラメーターの値は、Path パラメーターを修飾します。 パス要素またはパターンを入力します( 例:*.txt)。 ワイルドカードを使用できます。
型: | String[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | True |
-Filter
プロバイダーの形式または言語でフィルターを指定します。 このパラメーターの値は、Path パラメーターを修飾します。 ワイルドカードの使用を含むフィルターの構文は、プロバイダーによって異なります。 フィルターは 、オブジェクトが取得されるときにプロバイダーがフィルターを適用するため、他のパラメーターよりも効率的です。 それ以外の場合、PowerShell はオブジェクトが取得された後にフィルターを処理します。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | True |
-Force
読み取り専用属性をオーバーライドして、読み取り専用ファイルにコンテンツを追加できるようにします。 たとえば、Force は、読み取り専用属性をオーバーライドしたり、ディレクトリを作成してファイル パスを完了したりしますが、ファイルのアクセス許可の変更は試みません。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Include
指定した項目のみを追加します。 このパラメーターの値は、Path パラメーターを修飾します。 パス要素またはパターンを入力します( 例:*.txt)。 ワイルドカードを使用できます。
型: | String[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | True |
-LiteralPath
追加コンテンツを受け取るアイテムへのパスを指定します。 パスとは異なり、LiteralPath 値は、型指定されたとおりに使用されます。 ワイルドカードとして解釈される文字はありません。 パスにエスケープ文字が含まれている場合は、単一引用符で囲みます。 単一引用符は、エスケープ シーケンスとして文字を解釈しないように PowerShell に指示します。
型: | String[] |
Aliases: | PSPath |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-NoNewline
このコマンドレットがコンテンツに改行または改行を追加しないことを示します。
入力オブジェクトの文字列形式が連結されて出力が形成されます。 出力文字列の間にスペースや改行は挿入されません。 最後の出力文字列の後に改行は追加されません。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-PassThru
追加されたコンテンツを表すオブジェクトを返します。 既定では、このコマンドレットは出力を生成しません。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Path
追加コンテンツを受け取るアイテムへのパスを指定します。 ワイルドカードを使用できます。 複数のパスを指定する場合は、コンマを使用してパスを区切ります。
型: | String[] |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | True |
-Stream
コンテンツの代替データ ストリームを指定します。 ストリームが存在しない場合は、このコマンドレットによって作成されます。 ワイルドカード文字はサポートされていません。
Stream は、FileSystem プロバイダーが Add-Content
に追加する動的パラメーターです。 このパラメーターは、ファイル システム ドライブでのみ機能します。
Add-Content
コマンドレットを使用して、Zone.Identifier 代替データ ストリームの内容を変更できます。 ただし、インターネットからダウンロードされたファイルをブロックするセキュリティ チェックを排除する方法として、これはお勧めしません。 ダウンロードしたファイルが安全であることを確認する場合は、Unblock-File
コマンドレットを使用します。
このパラメーターは PowerShell 3.0 で導入されました。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-UseTransaction
アクティブなトランザクションにコマンドを含みます。 このパラメーターは、トランザクションが進行中の場合にのみ有効です。 詳細については、about_Transactionsを参照してください。
型: | SwitchParameter |
Aliases: | usetx |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Value
追加するコンテンツを指定します。 引用符で囲まれた文字列を入力します (例: このデータは、の内部使用専用です)。または、 生成する Get-Date
オブジェクトなどのコンテンツを含むオブジェクトを指定します。
パスは単なる文字列であるため、パスを入力してファイルの内容を指定することはできません。
Get-Content
コマンドを使用してコンテンツを取得し、Value パラメーターに渡すことができます。
型: | Object[] |
配置: | 1 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-WhatIf
コマンドレットを実行した場合の動作を示します。 コマンドレットは実行されません。
型: | SwitchParameter |
Aliases: | wi |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
System.Object, System.Management.Automation.PSCredential
値、パス、または資格情報を Set-Content
にパイプできます。
出力
None or System.String
PassThru パラメーターを使用すると、Add-Content
はコンテンツを表す System.String オブジェクトを生成します。 それ以外の場合、このコマンドレットは出力を生成しません。
メモ
オブジェクトを Add-Content
にパイプすると、オブジェクトは文字列に変換されてからアイテムに追加されます。 オブジェクトの種類によって文字列形式が決まりますが、形式はオブジェクトの既定の表示とは異なる場合があります。 文字列形式を制御するには、送信コマンドレットの書式設定パラメーターを使用します。
また、組み込みのエイリアス、Add-Content
で ac
を参照することもできます。 詳細については、about_Aliasesを参照してください。
Add-Content
コマンドレットは、任意のプロバイダーによって公開されるデータを操作するように設計されています。 セッションで使用可能なプロバイダーを一覧表示するには、「Get-PSProvider
」と入力します。 詳細については、about_Providersを参照してください。