- ベストアンサー
PowerShellでファイルの連結方法
PowerShellでファイルの連結をしたいと思っています。 例えば、C:\にa.csv、b.csv、c.csvがあったとします。 Get-Contentを実行すると、問題なくCSVの中身が出力されます。 次に、ネットにあったファイル結合方法を試してました。 Get-Content *.csv > output.csv 実行すると、output.csvに次々とデータが追加されて、ループ状態でどんどん増えていきます。 強制終了で終了させましたが、1回のみファイルの結合をしたいと思いますが、どのようにすればよいでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
PowerShell のことは全く知らないのですが、これはひょっとして output.csv の内容を読み出しながら読み込んだ内容を output.csv に追記していっているのではないでしょうか。 たとえば output.csv が(それまでの処理で)10 行あったとして、 1 行目読み込み ↓ 読み込み内容を 11 行目として追記 ↓ 2 行目読み込み ↓ 読み込み内容を 12 行目として追記 ↓ ……(中略)…… ↓ 10 行目読み込み ↓ 読み込み内容を 20 行目として追記 ↓ (最初はなかった)11 行目読み込み ↓ 読み込み内容を 21 行目として追記 ↓ ……(以下略)…… という事になっているのではないかと。 対処法として Get-Content *.csv > output.temp としてから output.temp を output.csv にリネームするというのを思いついたのですがいかがでしょうか。
お礼
なんと!PowerShellを知らないのに適切なご回答ありがとうございます。お教え頂いた通りにoutput.tmpとして実行したら普通にできました。 おそらくお教え頂いた通りのような事がおこなわれているが為に、起こっている現象のような気がします。気づきませんでした。本当にありがとうございます。