PowerShell セット コンテンツ コマンドレット

Migel Hewage Nimesha 2024年2月15日
  1. PowerShell の Set-Content コマンドレット
  2. Set-Content コマンドレットを使用してテキスト コンテンツを 1つのファイルに書き込む
  3. Set-Content コマンドレットを使用して複数のファイルのテキスト コンテンツを置換する
  4. Set-Content を使用して、PIPE を介してテキスト コンテンツを渡す
PowerShell セット コンテンツ コマンドレット

場合によっては、同じテキスト コンテンツを複数のテキスト ファイルに書き込む必要がある場合があります。 PowerShell には、コマンド ラインからテキスト コンテンツを書き込むための便利なコマンドレットが用意されています。

この記事では、Set-Content コマンドレットに焦点を当てます。

PowerShell の Set-Content コマンドレット

Set-Content コマンドレットは、新しいテキスト コンテンツを書き込むか、ファイル内の既存のテキストを置き換えます。 これは、Linux の > 演算子に似ています。

Set-Content コマンドレットは、指定したファイルにテキストを追加する Add-Content 文字列処理コマンドレットとは異なります。 sc は、Set-Content コマンドのエイリアスとして使用できます。

構文:

Set-Content
    [-Path_to_file] <string[]>
    [-Value] <Object[]>
    [-PassThru]
    [-Filter <string>]
    [-Include <string[]>]
    [-Exclude <string[]>]
    [-Force]
    [-Credential <pscredential>]
    [-WhatIf]
    [-Confirm]
    [-NoNewline]
    [-Encoding <Encoding>]
    [-AsByteStream]
    [-Stream <string>]
    [<CommonParameters>]

このコマンドは非常に多くの引数を取ります。いくつかの引数の目的については、次のセクションで説明します。

パラメータ 説明
-Path_to_file 既存のテキスト ファイル パスを指定するか、指定されたパスに新しいファイル パスを作成できます。
-Value このパラメーターは、書き込むテキスト コンテンツを渡すために使用されます。
-Force -Force 引数は、読み取り専用ファイルの内容を置き換えます。
-Encoding ターゲット ファイルのテキスト エンコーディングは、デフォルトで utf8NoBOM に設定されています。
-Exclude この操作で除外する必要がある項目は、文字列配列として指定されます。
-Include これは、-Exclude 引数の反対です。 この引数は、Set-Content 操作に含める必要がある項目の配列を指定します。
-PassThru PassThru 引数を指定すると、コマンドはテキスト ファイルに追加されたテキスト コンテンツを出力します。

通常、-Value パラメータは、通常、ファイルに書き込まれるテキスト コンテンツを指定するために使用されます。 さらに、別のオブジェクトからテキスト コンテンツをパイプすることもできます。

非文字列オブジェクトを Set-Content コマンドに渡すと、最初に非文字列オブジェクトが文字列に変換され、ファイルに書き込まれます。

Set-Content コマンドレットを使用してテキスト コンテンツを 1つのファイルに書き込む

現在存在しない sometext.txt というファイルにテキスト コンテンツを書き込んでみましょう。 そのため、Set-Content コマンドは最初にこのファイルを作成し、-Value 引数で渡されたコンテンツを書き込みます。

指図:

Set-Content -Path D:\codes\sometext.txt -Value "This should create a new file called sometext.txt and write this text to it..."

テキストファイルを作成してコンテンツを書き込むコマンド

出力:

テキスト ファイルを作成して内容を出力

Set-Content コマンドレットを使用して複数のファイルのテキスト コンテンツを置換する

file1.txt、file2.txt、および file3.txt の 3つのファイルがあるとします。 これら 3つのファイルの内容を次のテキストに置き換えます。

Hello, i would be appeared in all the three files!

この場合、Set-Content コマンドはワイルドカード文字を使用して、指定された 3つのファイルを照合します。

指図:

Set-Content -Path D:\codes\file*.txt -Value "Hello, i would be appeared in all the three files!"

Set-Content コマンドレットを使用して複数ファイルのテキスト コンテンツを置換するコマンド

3つのファイルは、file* txt で指定されたパターンに一致します。これにより、コマンドは、file 句で始まるすべてのファイルに一致するようになります。

出力:

Set-Content コマンドレットを使用して複数ファイル出力のテキスト コンテンツを置換する

Set-Content を使用して、PIPE を介してテキスト コンテンツを渡す

-Value 引数を常に指定する必要はありません。 代わりに、次のようにテキスト オブジェクトを Set-Content に PIPE できます。

指図:

(Get-Content D:\codes\file1.txt).replace('all the three files!', 'file4.txt') | Set-Content D:\codes\file4.txt

Get-Content コマンドレットは、file1.txt ファイルからテキスト コンテンツを読み取ります。 次に、replace コマンドを使用して 3つのファイルすべてを置き換えます! file4.txt のテキスト。

最後に、作成されたテキストが file4.txt ファイルに書き込まれます。

出力:

Set-Content を使用して、パイプ出力を介してテキスト コンテンツを渡す

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.