次の方法で共有


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-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: 新しいファイルを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-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-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

入力

Object

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

PSCredential

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

出力

None

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

String

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

メモ

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

  • Windows の場合:

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

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