PowerSehll7でテキストファイルの作成、追記、結合する方法

powershell7 コンピュータ
powershell7

テキストファイルの作成

PS H:\workspace> New-Item -Path dummy1.txt

    Directory: H:\workspace

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---          2023/10/26    11:31              0 dummy1.txt

ファイルサイズ0の空のテキストファイルを作成されます。
New-Itemではファイルオブジェクトが返るようですのでパイプライン繋いで作成したファイルを加工することが出来そうです。戻り値が不要であれば、同じくパイプラインでOut-Nullへつなげて戻り値を無視することも出来ます。

テキストファイルを新規作成し文字列をセット

PS H:\workspace> Write-Output "C言語" | Set-Content -Path dummy3.txt -Encoding UTF8

結果を確認

Get-Content dummy3.txt
C言語

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

Write-Output "PowerShell" | Add-Content -Path dummy3.txt -Encoding UTF8

結果を確認

Get-Content dummy3.txt
C言語
PowerShell

テキストファイルの結合

まず、結合するテキストファイルを2つ作成します。

Write-Output "ABC" | Set-Content -Path text1.txt -Encoding UTF8
Write-Output "123" | Set-Content -Path text2.txt -Encoding UTF8

結合します。

Get-Content text1.txt, text2.txt | Set-Content -Path text3.txt -Encoding UTF8

結果を確認

Get-Content text3.txt
ABC
123

結合するファイルを読み込む場合Get-Contentの引数は,カンマで区切ります。

複数のテキストファイルの結合

Get-Content text*.txt | Set-Content -Path result.txt -Encoding UTF8

ワイルドカードで条件にあう複数のファイルを結合します。
結果を確認

Get-Content result.txt
ABC
123
ABC
123

前項で作成したtext3.txtも結合されたため、内容が繰り返されています。

Get-Contentのエイリアス

Get-Alias -Definition "Get-Content"

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           cat -> Get-Content
Alias           gc -> Get-Content
Alias           type -> Get-Content

個人的になじみがあるのはcat

Write-Outputのエイリアス

Get-Alias -Definition "Write-Output"

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           echo -> Write-Output
Alias           write -> Write-Output

個人的になじみがあるのはecho

未確認

Set-ContentAdd-Contentとリダイレクトの関係

コメント