• ベストアンサー

PowerShellでファイルの連結方法

PowerShellでファイルの連結をしたいと思っています。 例えば、C:\にa.csv、b.csv、c.csvがあったとします。 Get-Contentを実行すると、問題なくCSVの中身が出力されます。 次に、ネットにあったファイル結合方法を試してました。 Get-Content *.csv > output.csv 実行すると、output.csvに次々とデータが追加されて、ループ状態でどんどん増えていきます。 強制終了で終了させましたが、1回のみファイルの結合をしたいと思いますが、どのようにすればよいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • hitomura
  • ベストアンサー率48% (325/664)
回答No.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 にリネームするというのを思いついたのですがいかがでしょうか。

fflashing
質問者

お礼

なんと!PowerShellを知らないのに適切なご回答ありがとうございます。お教え頂いた通りにoutput.tmpとして実行したら普通にできました。 おそらくお教え頂いた通りのような事がおこなわれているが為に、起こっている現象のような気がします。気づきませんでした。本当にありがとうございます。

関連するQ&A