Pour fonctionner en mode natif, vous devrez probablement utiliser Cygwin (dont je ne peux pas me passer lors de l'utilisation de Windows). Donc dès le départ, +1 pour Cygwin. N'importe quoi d'autre serait barbare.
CEPENDANT, cela étant dit, j'ai récemment commencé à utiliser une combinaison d'utilitaires pour PORTER facilement des scripts Bash vers Windows afin que mes collègues anti-Linux puissent facilement exécuter des tâches complexes qui sont mieux gérées par les utilitaires GNU.
Je peux généralement porter un script Bash vers Batch en très peu de temps en ouvrant le script d'origine dans un volet et en écrivant un fichier Batch dans l'autre volet. Les outils que j'utilise sont les suivants:
Je préfère UnxUtils à GnuWin32 parce que [quelqu'un, s'il vous plaît, corrigez-moi si je me trompe] Les utilitaires GnuWin doivent normalement être installés, alors que UnxUtils sont des binaires autonomes qui fonctionnent tout simplement.
Cependant, les CoreUtils n'incluent pas certains utilitaires * NIX familiers tels que cURL, qui est également disponible pour Windows (curl.haxx.se/download.html).
Je crée un dossier pour les projets, et toujours SET PATH =. dans le fichier .bat afin qu'aucune autre commande que les commandes shell CMD de base ne soit référencée (ainsi que les UnxUtils particuliers requis dans le dossier du projet pour que le script Batch fonctionne comme prévu).
Ensuite, je copie les fichiers CoreUtils .exe nécessaires dans le dossier du projet et je les référence dans le fichier .bat tel que ". \ Curl.exe -s google.com", etc.
Le programme Bat2Exe est l'endroit où la magie opère. Une fois votre fichier Batch terminé et testé avec succès, lancez Bat2Exe.exe et spécifiez le chemin d'accès au dossier du projet. Bat2Exe créera ensuite un binaire Windows contenant tous les fichiers de ce dossier spécifique, et utilisera le premier .bat qu'il rencontrera pour utiliser comme exécutable principal. Vous pouvez même inclure un fichier .ico à utiliser comme icône pour le fichier .exe final généré.
J'ai essayé quelques-uns de ces types de programmes et de nombreux binaires générés sont signalés comme des logiciels malveillants, mais la version de Bat2Exe que j'ai référencée fonctionne parfaitement et les fichiers .exe générés sont complètement nettoyés.
L'exécutable résultant peut être exécuté de manière interactive en double-cliquant, ou exécuté à partir de la ligne de commande avec des paramètres, etc., tout comme un fichier Batch normal, sauf que vous pourrez utiliser les fonctionnalités de nombreux outils que vous utiliserez normalement à Bash.
Je me rends compte que cela devient assez long, mais si je peux m'écarter un peu, j'ai également écrit un script Batch que j'appelle PortaBashy que mes collègues peuvent lancer à partir d'un partage réseau contenant une installation Cygwin portable. Il définit ensuite la variable% PATH% sur le format normal * NIX (/ usr / bin: / usr / sbin: / bin: / sbin), etc. et peut soit se lancer dans le shell Bash lui-même, soit lancer le plus puissant et joli émulateur de terminal MinTTY.
Il existe toujours de nombreuses façons d'accomplir ce que vous essayez de faire; il s'agit simplement de combiner les bons outils pour le travail, et cela se résume souvent à des préférences personnelles.