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'

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-ContentDateTimeFile1.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-ContentPath パラメーターと Value パラメーターを使用して、現在のディレクトリに新しいファイルを作成します。
  • コマンドレットは Get-Content 、既存のファイルの内容を取得し、 CopyFromFile.txtValue パラメーターに渡します。 コマンドレットのかっこを Get-Content 使用すると、コマンドが開始する前にコマンドが Add-Content 完了します。
  • コマンドレットは Get-ContentNewFile.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-ItemPath パラメーターと ItemType パラメーターを使用して、現在のディレクトリにファイル IsReadOnlyTextFile.txt を作成します。
  • コマンドレットはSet-ItemProperty、Name パラメーターと Value パラメーターを使用して、ファイルの IsReadOnly プロパティを True に変更します。
  • コマンドレットは Get-ChildItem 、ファイルが空0 () であり、読み取り専用属性 (r) を持っている場合を示します。
  • コマンドレットでは Add-ContentPath パラメーターを使用してファイルを指定します。 Value パラメーターには、ファイルに追加するテキスト文字列が含まれます。 Force パラメーターは、テキストを読み取り専用ファイルに書き込みます。
  • コマンドレットでは Get-ContentPath パラメーターを使用してファイルの内容を表示します。

読み取り専用属性を削除するには、Value パラメーターを Set-ItemProperty に設定して コマンドを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

ターゲット ファイルのエンコードの種類を指定します。 既定値は Default です。

このパラメーターに使用できる値は次のとおりです。

  • Ascii ASCII (7 ビット) 文字セットを使用します。
  • BigEndianUnicode ビッグ エンディアンバイト順で UTF-16 を使用します。
  • BigEndianUTF32 ビッグ エンディアンバイト順で UTF-32 を使用します。
  • Byte 一連の文字をバイトシーケンスにエンコードします。
  • Default システムのアクティブなコード ページ (通常は ANSI) に対応するエンコードを使用します。
  • Oem システムの現在の OEM コード ページに対応するエンコードを使用します。
  • StringUnicode と同じです。
  • Unicode リトル エンディアンバイト順で UTF-16 を使用します。
  • UnknownUnicode と同じです。
  • UTF7 UTF-7 を使用します。
  • UTF8 UTF-8 を使用します。
  • UTF32 リトル エンディアン バイト順で UTF-32 を使用します。

エンコードは、FileSystem プロバイダーがコマンドレットに追加する Add-Content 動的パラメーターです。 このパラメーターはファイル システム ドライブでのみ機能します。

Type:FileSystemCmdletProviderEncoding
Accepted values:ASCII, BigEndianUnicode, BigEndianUTF32, Byte, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32
Position:Named
Default value:Default
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
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

コンテンツの代替データ ストリームを指定します。 ストリームが存在しない場合は、このコマンドレットによって作成されます。 ワイルドカード文字はサポートされていません。

Stream は、FileSystem プロバイダーが に追加する Add-Content動的パラメーターです。 このパラメーターはファイル システム ドライブでのみ機能します。

コマンドレットを Add-Content 使用して、 などの Zone.Identifier代替データ ストリームの内容を変更できます。 ただし、インターネットからダウンロードされたファイルをブロックするセキュリティ チェックを排除する方法として、これをお勧めしません。 ダウンロードしたファイルが安全であることを確認する場合は、 コマンドレットを使用します Unblock-File

このパラメーターは、PowerShell 3.0 で導入されました。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseTransaction

アクティブなトランザクションのコマンドが含まれます。 このパラメーターは、トランザクションが進行中の場合のみ有効です。 詳細については、「about_Transactions」を参照してください。

Type:SwitchParameter
Aliases:usetx
Position:Named
Default value:False
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

入力

Object

値を に Set-Contentパイプできます。

PSCredential

資格情報を に Set-Contentパイプできます。

出力

None

既定では、このコマンドレットは出力を返しません。

String

PassThru パラメーターを使用すると、このコマンドレットはコンテンツを表す System.String オブジェクトを返します。

メモ

Windows PowerShellには、 の次のエイリアスがAdd-Content含まれています。

  • ac

  • オブジェクトを に Add-Contentパイプすると、オブジェクトは項目に追加される前に文字列に変換されます。 オブジェクト型によって文字列の形式が決まりますが、オブジェクトの既定の表示形式と異なる場合があります。 文字列の形式を制御するには、送信コマンドレットの書式設定パラメーターを使用します。

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