2017-09-04 12 views
1

フォルダに保存されたテキストファイルがたくさんあります。私はそれらを1つのファイル、例えば "all.txt"にマージしたいと思います。それぞれの内容の間に空白の行があります。 この問題はbash hereで解決しました。各ファイルの内容の間に空白行を含むフォルダ内のファイルをマージする

Powershellで同様のフィーチャーを達成するにはどうすればよいですか?

$sourcePath = "C:\Temp\*.txt" 
$destFile = "C:\Temp\all.txt" 
$encoding = "ASCII" 

Remove-Item $destFile -ErrorAction SilentlyContinue 

(Get-ChildItem -path $sourcePath) | 
    where-object { -not $_.PSIsContainer } | 
    ForEach-Object { 
     Get-Content $_; "" 
    } | 
    Out-File $destFile -Encoding $encoding 

ないと言うためにする必要があります。

答えて

0

はこれを試してみてください。 get-childitemは、all.txtが作成される前にファイルのリストが確実に収集されるように、括弧で囲まれています。ディレクトリはwhere-object { -not $_.PSIsContainer }で除外され、各ファイルが反復処理されます。イテレーターはファイル内容の後に空白行を出力します。最後に、パイプライン全体が指定されたエンコーディングで$destFileにリダイレクトされます。

+0

私はそれを試してみました。そして、ディレクトリ内のすべてのファイルのファイル名を持つファイルを私に渡しました。間に空白行があります。ファイル名ではなく、ファイルの内容が好きです。 – KykyElric

+0

これは奇妙です。それは私のために、ファイル名とファイルの内容を表示します。コピー/貼り付けや再入力しましたか? – andyb

+0

ファイル名を削除するように編集しました。 – andyb

関連する問題