Para ejecutar de forma nativa, es probable que necesite usar Cygwin (sin el cual no puedo vivir cuando uso Windows). Así que desde el principio, +1 para Cygwin. Cualquier otra cosa sería poco civilizado.
SIN EMBARGO, dicho esto, recientemente comencé a usar una combinación de utilidades para PORT Bash fácilmente scripts a Windows para que mis compañeros de trabajo anti-Linux puedan ejecutar fácilmente tareas complejas que son mejor manejadas por las utilidades GNU.
Normalmente puedo portar un script Bash a Batch en muy poco tiempo abriendo el script original en un panel y escribiendo un archivo Batch en el otro panel. Las herramientas que utilizo son las siguientes:
Prefiero UnxUtils a GnuWin32 debido al hecho de que [alguien, por favor, corríjame si me equivoco] las utilidades de GnuWin normalmente tienen que estar instaladas, mientras que UnxUtils son binarios independientes que simplemente funcionan de inmediato.
Sin embargo, los CoreUtils no incluyen algunas utilidades conocidas * NIX como cURL, que también está disponible para Windows (curl.haxx.se/download.html).
Creo una carpeta para los proyectos y siempre SET PATH =. en el archivo .bat para que no se haga referencia a otros comandos que no sean los comandos básicos del shell CMD (así como los UnxUtils particulares requeridos en la carpeta del proyecto para que el script Batch funcione como se esperaba).
Luego, copio los archivos .exe necesarios de CoreUtils en la carpeta del proyecto y los hago referencia en el archivo .bat como ". \ Curl.exe -s google.com", etc.
El programa Bat2Exe es donde ocurre la magia. Una vez que su archivo Batch esté completo y se haya probado con éxito, inicie Bat2Exe.exe y especifique la ruta a la carpeta del proyecto. Bat2Exe luego creará un binario de Windows que contiene todos los archivos en esa carpeta específica, y usará el primer .bat que encuentre para usar como el ejecutable principal. Incluso puede incluir un archivo .ico para utilizarlo como icono del archivo .exe final que se genera.
He probado algunos de estos tipos de programas, y muchos de los binarios generados se marcan como malware, pero la versión de Bat2Exe a la que hice referencia funciona perfectamente y los archivos .exe generados se escanean completamente.
El ejecutable resultante se puede ejecutar de forma interactiva haciendo doble clic, o desde la línea de comandos con parámetros, etc., como un archivo Batch normal, excepto que podrá utilizar la funcionalidad de muchas de las herramientas que normalmente utilizará. en Bash.
Me doy cuenta de que esto se está haciendo bastante largo, pero si puedo divagar un poco, también escribí un script de Batch al que llamo PortaBashy que mis compañeros de trabajo pueden iniciar desde un recurso compartido de red que contiene una instalación portátil de Cygwin. Luego establece la variable% PATH% en el formato * NIX normal (/ usr / bin: / usr / sbin: / bin: / sbin), etc. y puede lanzarse en el propio shell Bash o lanzar el más poderoso y bonito emulador de terminal MinTTY.
Siempre hay numerosas formas de lograr lo que está tratando de hacer; es solo una cuestión de combinar las herramientas adecuadas para el trabajo, y muchas veces se reduce a preferencias personales.