Sie können einfach verwenden cat example1.txt, example2.txt | sc examples.txt
. Mit diesem Stil können Sie sicherlich auch mehr als zwei Dateien verketten. Wenn die Dateien ähnlich benannt sind, können Sie außerdem Folgendes verwenden:
cat example*.txt | sc allexamples.txt
Das cat
ist ein Alias für Get-Content
und sc
ist ein Alias für Set-Content
.
Hinweis 1 : Seien Sie vorsichtig mit der letzteren Methode. Wenn Sie versuchen, eine Ausgabe zu erstellen examples.txt
(oder eine ähnliche Methode , die dem Muster entspricht), gerät PowerShell in eine Endlosschleife! (Ich habe das gerade getestet).
Hinweis 2 : Bei der Ausgabe in eine Datei mit >
bleibt die Zeichencodierung nicht erhalten! Aus diesem Grund wird die Verwendung von Set-Content
( sc
) empfohlen.
Set-Content
eine nationale Codepage verwendet wird (z. B. Windows-1252 für Englisch). Wenn die Quelldateien eine andere Codierung enthalten (z. B. Windows-1251 oder UTF8), müssen Sie die richtige Codierung festlegensc file.txt -Encoding UTF8
(Zahlen wie 1251 für Russisch werden seit Version 6.2 unterstützt)Add-Content
ist, dass die aggregierte Datei doppelt so lang ist, wenn Sie den Befehl zweimal ausführen. Ein guter Ersatz istOut-File
. Beispiel hierGet-Content my.bin -Raw | Set-Content my.bin -NoNewline
ändert sich nur mitmy.bin
Ausnahme der Zeitstempel.-Raw
Bewahrt alle CR / LF-Bytes auf und-NoNewline
verhindert , dass PowerShell eigene CR / LF-Bytes hinzufügt.Nicht verwenden
>
; es bringt die Zeichenkodierung durcheinander. Verwenden:quelle
cat
ist ein Alias fürGet-Content
.ÿþ
das ist ,FF FE
am Anfang meiner verketteten Datei bei der Verwendung>
.In
cmd
können Sie dies tun:In PowerShell wäre dies:
Während die PowerShell-Methode darin besteht, gc zu verwenden , ist das oben Genannte ziemlich schnell, insbesondere bei großen Dateien. Mit dem Schalter kann es auch für Nicht- ASCII- Dateien verwendet
/B
werden.quelle
Sie können das Cmdlet Add-Content verwenden. Vielleicht ist es etwas schneller als die anderen Lösungen, weil ich den Inhalt der ersten Datei nicht abrufe.
quelle
gc
sich?gc
ist ein Alias für Get-ContentDateien in der Eingabeaufforderung zu konkatieren wäre es
PowerShell konvertiert den
type
Befehl inGet-Content
, was bedeutet, dass bei Verwendung destype
Befehls in PowerShell eine Fehlermeldung angezeigt wird, da für denGet-Content
Befehl ein Komma zwischen den Dateien erforderlich ist. Der gleiche Befehl in PowerShell wärequelle
Wenn Sie die Dateien nach bestimmten Parametern (z. B. Datum und Uhrzeit) sortieren müssen:
quelle
Ich benutzte:
Dies wurde gut angehängt. Ich habe die ASCII-Codierung hinzugefügt, um die Nullzeichen zu entfernen, die Notepad ++ ohne die explizite Codierung angezeigt hat.
quelle
Sie können so etwas tun wie:
Wo
>
ist ein Alias für "Out-File" und >> ist ein Alias für "Out-File-Append".quelle
Da die meisten anderen Antworten (aufgrund der Rohrleitungen) häufig eine falsche Formatierung aufweisen, ist Folgendes am sichersten:
Ich weiß, dass Sie vermeiden wollten, den Inhalt von $ SomeAdditionalFile in eine Variable einzulesen, aber um zum Beispiel Ihre Newline-Formatierung zu speichern, glaube ich nicht, dass es einen richtigen Weg gibt, darauf zu verzichten.
Eine Problemumgehung besteht darin, Ihre $ SomeAdditionalFile Zeile für Zeile zu durchlaufen und diese in Ihre $ YourMasterFile zu leiten. Dies ist jedoch zu ressourcenintensiv.
quelle
So behalten Sie die Codierung und die Zeilenenden bei:
Hinweis: AFAIR, dessen Parameter von alten Powershells nicht unterstützt werden (<3? <4?)
quelle
Ich denke, der "Powershell-Weg" könnte sein:
quelle