次の方法で共有


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 コマンドレットは、指定した項目またはファイルにコンテンツを追加します。 コンテンツを指定するには、コマンドにコンテンツを入力するか、コンテンツを含むオブジェクトを指定します。

次の例でファイルまたはディレクトリを作成する必要がある場合は、「new-Item 参照してください。

例 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

このアクションを実行するアクセス許可を持つユーザー アカウントを指定します。 既定値は現在のユーザーです。

User01Domain01\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-Contentac を参照することもできます。 詳細については、about_Aliasesを参照してください。

Add-Content コマンドレットは、任意のプロバイダーによって公開されるデータを操作するように設計されています。 セッションで使用可能なプロバイダーを一覧表示するには、「Get-PSProvider」と入力します。 詳細については、about_Providersを参照してください。