PowerShellでテキストファイルを作成・書き込みする方法

Powershell Powershell
この記事は約7分で読めます。

PowerShellでは、コマンドを使ってテキストファイルを簡単に作成できます。

単純に空のテキストファイルを作成するだけでなく、作成時に文字列を書き込んだり、既存のファイルに文字列を追記したりすることも可能です。

今回は、PowerShellでテキストファイルを作成・書き込みする方法をまとめてみました。

広告

1.PowerShellでテキストファイルを作成する

PowerShellで空のテキストファイルを作成する場合は、New-Item を利用できます。

以下では、C:\hogehoge に test.txt を作成します。

New-Item -Path "C:\hogehoge\test.txt" -ItemType File

実行すると、以下のようにファイルが作成されます。

PS C:\> New-Item -Path "C:\hogehoge\test.txt" -ItemType File


    ディレクトリ: C:\hogehoge


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2026/09/18     15:56              0 test.txt

test.txt のサイズが 0 となっているため、空のテキストファイルが作成されていることが分かります。

1-1. ファイル名だけ指定する場合

現在のフォルダーにファイルを作成するのであれば、ファイル名だけを指定して作成することもできます。

New-Item -Path "test.txt" -ItemType File
広告

2.文字列を書き込んだテキストファイルを作成する

ファイルを作成すると同時に文字列を書き込みたい場合は、Set-Content を利用するとよいです。

Set-Content -Path "C:\hogehoge\test.txt" -Value "Hello World"

実行後にtest.txtを開くと、以下の文字列が記載されています。

PS C:\> Set-Content -Path "C:\hogehoge\test.txt" -Value "Hello World"
PS C:\> Get-Content -Path "C:\hogehoge\test.txt"
Hello World
PS C:\>

Set-Content は、指定したファイルが存在しない場合にはファイルを作成してから文字列を書き込みます。

そのため、ファイル作成と文字列の書き込みをまとめて実行できます。

広告

3.複数行の文字列を書き込む

複数行の内容を書き込むことも可能です。

Set-Content -Path "C:\hogehoge\test.txt" -Value @(
    "aaa"
    "bbb"
    "ccc"
)

作成された test.txt は以下のようになります。

PS C:\> Set-Content -Path "C:\hogehoge\test.txt" -Value @(
>>     "aaa"
>>     "bbb"
>>     "ccc"
>> )
PS C:\> Get-Content -Path "C:\hogehoge\test.txt"
aaa
bbb
ccc

ログファイルなど、複数行のテキストを作成したい場合にも利用できます。

広告

4.既存のテキストファイルに文字列を追記する

既存のテキストファイルに文字列を追加したい場合は、Add-Content を使用します。

Add-Content -Path "C:\hogehoge\test.txt" -Value "ddd"

上記の Set-Content で、作成したテキストに追記すると以下のようになります。

PS C:\> Add-Content -Path "C:\hogehoge\test.txt" -Value "ddd"
PS C:\> Get-Content -Path "C:\hogehoge\test.txt"
aaa
bbb
ccc
ddd

このように Add-Content は、既存のファイルを残したまま、最後に文字列を追加できます。

5.Set-Content と Add-Content の違い

Set-Content と Add-Content は似ていますが、動作が異なります。

コマンド動作
Set-Contentファイルの内容を指定した内容に変更
Add-Contentファイルの末尾に内容を追加

例えば、既存で文字列が記載されているファイルに Set-Content で書き込むと、ファイルの内容が上書きされます。

PS C:\> Set-Content -Path "C:\hogehoge\test.txt" -Value @(
>>     "aaa"
>>     "bbb"
>>     "ccc"
>> )
PS C:\> Set-Content -Path "C:\hogehoge\test.txt" -Value "ddd"
PS C:\> Get-Content -Path "C:\hogehoge\test.txt"
ddd

一方で、Add-Content の場合には、以下のように追記する挙動になります。

PS C:\> Get-Content -Path "C:\hogehoge\test.txt"
ddd
PS C:\> Add-Content -Path "C:\hogehoge\test.txt" -Value "eee"
PS C:\> Get-Content -Path "C:\hogehoge\test.txt"
ddd
eee

既存の内容を残したい場合(=追記したい場合)は、Add-Content を使用します。

6.Out-Fileを利用してテキストファイルを作成する

PowerShellのコマンド実行結果をテキストファイルに保存する場合は、Out-File を利用してテキストファイルを作成することもできます。

例えば、Get-Process の実行結果をファイルに保存します。

PS C:\> Get-Process | Out-File -FilePath "C:\hogehoge\process.txt"
PS C:\> Get-Content -Path "C:\hogehoge\process.txt"

Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
-------  ------    -----      -----     ------     --  -- -----------
    179      10     2908      12872              6184   0 AggregatorHost
    474      22    14212      51576       2.02   5368   4 AppActions
    227      17     3488      15428       7.63   4580   4 AppleMobileDeviceProcess
    440      24    59908      47124       0.23  15412   4 ApplicationFrameHost
    206      17    18032      34388       0.09    500   4 chrome
    420      28    79296     148252       4.78   3856   4 chrome
   ・
   ・
   ・

これにより、Get-Process の結果が process.txt に出力されます。

PowerShellで取得した情報をログとして保存したい場合などに便利です。

7.ファイルを作成するときの使い分け

今回紹介したコマンドは、用途によって使い分けると分かりやすいです。

コマンド用途
New-Item空のファイルを作成する
Set-Contentファイルを作成して文字列を書き込む既存ファイルの内容を上書きする
Add-Content既存ファイルの末尾に文字列を追加する
Out-FilePowerShellのコマンド実行結果をファイルに保存する

8.まとめ

PowerShellでは、コマンドを使ってテキストファイルを簡単に作成できます。

今回紹介した方法をまとめると以下のとおりです。

  • New-Item:空のテキストファイルを作成できる
  • Set-Content:文字列を書き込んだファイルを作成できる
  • Add-Content:既存ファイルに文字列を追記できる
  • Out-File:PowerShellの実行結果をファイルに保存できる
  • Set-Content:既存ファイルの内容を上書きする

単純なファイル作成だけでなく、PowerShellでログを保存したり、スクリプトの実行結果をファイルとして残したりする場合にも活用できます。