1. ホーム
  2. powershell

[解決済み] PowerShellで2つのテキストファイルを連結する方法は?

2022-07-28 20:35:24

質問

の機能を再現しようとしています。 cat コマンドの機能を再現しようとしています。

両方のファイルを明示的に変数に読み込んで、変数を連結し、連結された変数を書き出すような解決策は避けたいと思います。

どのように解決するのですか?

単純に Get-Content Set-Content コマンドレットを使用します。

Get-Content inputFile1.txt, inputFile2.txt | Set-Content joinedFile.txt

このスタイルでは、2つ以上のファイルを連結することもできます。

ソースファイルの名前が似ている場合、ワイルドカードを使用することができます。

Get-Content inputFile*.txt | Set-Content joinedFile.txt

注1: PowerShell 5とそれ以前のバージョンでは、エイリアスの catsc に対して Get-ContentSet-Content をそれぞれ使用します。しかし、これらのエイリアスには問題があります。 cat は *nix システムではシステムコマンドであり sc は Windows システムのシステムコマンドであるため、これらを使用することは推奨されませんし、実際 sc は PowerShell Core (v7) ではもはや定義すらされていません。PowerShell チームは はエイリアスの使用全般を推奨していません。 .

注2 : ワイルドカードの扱いに注意してください。 inputFiles.txt (に出力しようとすると、PowerShellは無限ループに陥ります! (今テストしました)。

注3 : ファイルへの出力は > でファイルに出力すると、文字コードが保持されません! このため Set-Content を使うことが推奨されます。