Wie diff ich zwei Textdateien in Windows Powershell Server Fehler

Oder Sie könnten das DOS fc Befehl wie so verwenden (dies ist die Ausgabe beiden Dateien zeigt, so dass Sie für die Unterschiede beim Scannen):

fc ist ein Alias ​​für den Format-Custom Cmdlets so sicher sein, den Befehl als fc.exe einzugeben. Bitte beachten Sie, dass viele DOS-Dienstprogramme Sie UTF-8-Codierung nicht verarbeiten.







Sie können auch ein CMD-Prozess erzeugen und laufen fc innerhalb dieser Gruppe.

Dies weist Powershell einen Prozess mit dem ‚cmd‘ Programm unter Verwendung der Parameter in Anführungszeichen zu starten. In den Kursen, die ‚/ c‘ cmd ​​Option, um den Befehl auszuführen und zu beenden. Der eigentliche Befehl von cmd in dem Prozess ausgeführt werden soll fc DateiA.txt fileb.txt die Ausgabe an die Datei diff.txt umleitet.

Sie können das DOS fc.exe aus Powershell verwenden.

Vergleichen-Objekt (aka diff Alias) ist erbärmlich, wenn man es erwartet so etwas wie ein Unix-diff verhalten. Ich versuchte, das diff (gc file1) (gc file2), und wenn eine Zeile zu lang ist, kann ich nicht die tatsächliche diff sehen und was noch wichtiger ist, kann ich nicht sagen, welcher Zeilennummer der Unterschied eingeschaltet ist.







Wenn ich das Hinzufügen -passthru versuchen, jetzt kann ich den Unterschied sehen, aber ich verliere die die Differenz-Datei in ist, und ich weiß immer noch nicht eine Zeilennummer erhalten.

Mein Rat, verwenden Sie keine Powershell Unterschiede in Dateien zu finden. Als jemand anders erwähnt, fc arbeitet, und arbeitet ein wenig besser als die Vergleichs-Objekt, und noch besser ist das Herunterladen und mit realen Werkzeugen wie der Unix-Emulator, die Mikeage erwähnt.

Die Lösung für alle, die einen vernünftigen Ausgang suchen ist

  1. erhält eine echte diff (zB von GnuWin32)
  2. bearbeiten% USERPROFILE% \ Documents \ Windows \ Microsoft.PowerShell_profile.ps1

Das Argument -force ist erforderlich, weil Powershell recht wertvoll zu diesem speziellen eingebauten Alias ​​ist. Wenn jemand interessiert ist, mit GnuWin32 installiert ist, schließe ich auch die folgenden in meinem Powershell-Profil:

Vor allem, weil Powershell nicht Argumente verstehen, die zusammen und Typisierung ausgeführt werden, zum Beispiel „rm -Force -Recurse“ ist viel mehr Aufwand als „rm -rf“.

Powershell hat einige nette Features, aber es gibt einige Dinge, es sollte einfach nicht für mich zu tun versuchen.







In Verbindung stehende Artikel