2013-06-06 34 views
15

Używam programu PowerShell 3.Łączenie plików za pomocą programu PowerShell

Co to jest najlepsza praktyka przy łączeniu plików?

file1.txt + file2.txt = file3.txt 

Czy PowerShell zapewnia możliwość wykonania tej operacji bezpośrednio? A może potrzebuję załadować zawartość każdego pliku do zmiennych lokalnych?

+0

Możliwy duplikat [? Jak złączyć dwa pliki tekstowe w PowerShell] (http://stackoverflow.com/questions/8749929/how-do-i-concatenate-dwa pliki tekstowe w powłoce) –

Odpowiedz

14

pójdę tą drogą:

Get-Content file1.txt, file2.txt | Set-Content file3.txt 

Użyj -Encoding parametr na Set-Content, jeśli potrzebujesz czegoś innego niż ASCII, który jest domyślnym dla Set-Content.

+1

+1 '-Path' to' [string []] 'idź z tym. –

+0

+1, zawsze uwielbiam te proste :) Oczywiście, plik wyjściowy byłby równie dobry. –

+0

@AthomSfere Tak i jeśli chcesz, aby kodowanie Unicode było domyślnym plikiem wyjściowym. –

30

Jeśli wszystkie pliki istnieją w tym samym katalogu i można je dopasować za pomocą prostego wzoru, poniższy kod połączy wszystkie pliki w jeden.

Get-Content .\File?.txt | Out-File .\Combined.txt 
+1

'Get-Content ... | Out-File ... "jest prawdopodobnie najczystszym wyrazem * mojej * intencji, gdy robię coś takiego. Nie ma dla mnie znaczenia, czy mogę dopasować prosty wzór; istnieje wiele sposobów wyboru plików w PowerShell. Domyślne kodowanie Out-File jest dla mnie częściej poprawne niż domyślne kodowanie Set-Content; Out-File domyślnie przyjmuje kod Unicode, a Set-Content domyślnie ASCII. –

0

uogólnieniem oparciu o @Keith odpowiedź:

gc <some regex expression> | sc output

+0

podczas gdy ta odpowiedź wygląda na "bash", powodem krótkich nazw są aliasy w PowerShell - gdzie 'gc' to Get-Content, a' sc' to Set-Content. – c69

Powiązane problemy