Um nativ ausgeführt zu werden, müssen Sie wahrscheinlich Cygwin verwenden (ohne das ich unter Windows nicht leben kann). Also sofort +1 für Cygwin. Alles andere wäre unzivilisiert.
Allerdings habe ich kürzlich damit begonnen, eine Kombination von Dienstprogrammen zu verwenden, um Bash-Skripte einfach unter Windows zu portieren, damit meine Anti-Linux-Mitarbeiter problemlos komplexe Aufgaben ausführen können, die von GNU-Dienstprogrammen besser erledigt werden.
Normalerweise kann ich ein Bash-Skript in sehr kurzer Zeit nach Batch portieren, indem ich das ursprüngliche Skript in einem Bereich öffne und eine Batch-Datei in den anderen Bereich schreibe. Die Werkzeuge, die ich benutze, sind wie folgt:
Ich bevorzuge UnxUtils gegenüber GnuWin32, da [jemand korrigiert mich bitte, wenn ich falsch liege] GnuWin-Utils normalerweise installiert werden müssen, während UnxUtils eigenständige Binärdateien sind, die sofort funktionieren.
Die CoreUtils enthalten jedoch keine bekannten * NIX-Dienstprogramme wie cURL, das auch für Windows verfügbar ist (curl.haxx.se/download.html).
Ich erstelle einen Ordner für die Projekte und setze immer PAT PATH =. in der .bat-Datei, sodass auf keine anderen Befehle als die grundlegenden CMD-Shell-Befehle verwiesen wird (sowie auf die bestimmten UnxUtils, die im Projektordner erforderlich sind, damit das Batch-Skript wie erwartet funktioniert).
Dann kopiere ich die benötigten CoreUtils .exe-Dateien in den Projektordner und verweise auf sie in der .bat-Datei wie ". \ Curl.exe -s google.com" usw.
Im Bat2Exe-Programm geschieht die Magie. Sobald Ihre Batch-Datei vollständig ist und erfolgreich getestet wurde, starten Sie Bat2Exe.exe und geben Sie den Pfad zum Projektordner an. Bat2Exe erstellt dann eine Windows-Binärdatei, die alle Dateien in diesem bestimmten Ordner enthält, und verwendet die erste .bat-Datei, die als ausführbare Hauptdatei verwendet wird. Sie können sogar eine .ico-Datei einfügen, die als Symbol für die endgültige .exe-Datei verwendet wird, die generiert wird.
Ich habe einige dieser Programme ausprobiert und viele der generierten Binärdateien werden als Malware gekennzeichnet, aber die Bat2Exe-Version, auf die ich verwiesen habe, funktioniert einwandfrei und die generierten EXE-Dateien werden vollständig sauber gescannt.
Die resultierende ausführbare Datei kann interaktiv durch Doppelklicken ausgeführt oder über die Befehlszeile mit Parametern usw. wie eine normale Batch-Datei ausgeführt werden, außer dass Sie die Funktionalität vieler der normalerweise verwendeten Tools nutzen können in Bash.
Mir ist klar, dass dies ziemlich lange dauert, aber wenn ich etwas abschweifen darf, habe ich auch ein Batch-Skript geschrieben, das ich PortaBashy nenne und das meine Mitarbeiter von einer Netzwerkfreigabe aus starten können, die eine tragbare Cygwin-Installation enthält. Anschließend wird die Variable% PATH% auf das normale * NIX-Format (/ usr / bin: / usr / sbin: / bin: / sbin) usw. gesetzt und kann entweder in die Bash-Shell selbst oder in das leistungsstärkere und gestartet werden hübscher MinTTY Terminal Emulator.
Es gibt immer zahlreiche Möglichkeiten, um das zu erreichen, was Sie sich vorgenommen haben. Es geht nur darum, die richtigen Werkzeuge für den Job zu kombinieren, und oft läuft es auf persönliche Vorlieben hinaus.