Die Cmdlets in PowerShell sind sehr schön und funktionieren zuverlässig. Ihre Objektorientierung gefällt mir sehr, da ich ein Java/C#-Entwickler bin, aber es ist keineswegs ein vollständiger Satz. Da es objektorientiert ist, fehlt es an einer Menge der Textstrom Reifegrad des POSIX-Werkzeugsatzes ( awk
y sed
um nur einige zu nennen).
Die beste Antwort, die ich auf das Dilemma gefunden habe, OO-Techniken zu lieben und die Reife der POSIX-Tools zu lieben, ist, beides zu nutzen! Ein großartiger Aspekt der PowerShell ist, dass sie Objekte hervorragend in Standard-Streams einbinden kann. PowerShell verwendet standardmäßig eine Objektpipeline, um seine Objekte zu transportieren. Dabei handelt es sich nicht um die Standard-Streams (Standard Out, Standard Error und Standard In). Wenn PowerShell die Ausgabe an einen Standardprozess weitergeben muss, der keine Objektpipeline hat, konvertiert es die Objekte zunächst in einen Textstrom. Da dies so gut funktioniert, ist PowerShell ein hervorragender Ort, um POSIX-Tools zu hosten!
Der beste POSIX-Werkzeugsatz ist GnuWin32 . Die Installation dauert mehr als 5 Sekunden, aber es ist die Mühe wert, und soweit ich sagen kann, verändert es Ihr System nicht (Registry), c:\windows\*
Ordner, usw.), außer dem Kopieren von Dateien in die von Ihnen angegebenen Verzeichnisse. Das ist besonders praktisch, denn wenn Sie die Werkzeuge in einem gemeinsamen Verzeichnis ablegen, können viele Personen gleichzeitig darauf zugreifen.
GnuWin32 Installationsanleitung
Herunterladen und Ausführen der exe (es ist von der SourceForge-Website ) und verweist auf ein geeignetes Verzeichnis (ich werde C:\bin
). Es wird eine GetGnuWin32
Verzeichnis, in dem Sie Folgendes ausführen werden download.bat
entonces install.bat
(ohne Parameter), woraufhin es eine C:\bin\GetGnuWin32\gnuwin32\bin
das der nützlichste Ordner ist, den es je auf einem Windows-Rechner gab. Fügen Sie dieses Verzeichnis zu Ihrem Pfad hinzu, und schon kann es losgehen.