Quel est l'équivalent Windows de un shell script UNIX?
Je veux avoir un fichier exécutable qui va appeler certains autres programmes. La façon dont je voudrais le faire sous Linux est avec un simple script bash qui ressemble à ceci:
#!/bin/bash
echo "running some-program"
/home/murat/some-program arg1 arg2
Quelle est la meilleure façon de faire ce genre de chose sous Windows?
OriginalL'auteur Murat Ayfer | 2008-11-17
Vous devez vous connecter pour publier un commentaire.
Prendre un coup d'oeil à PowerShell, qui est le plus proche que vous obtiendrez à un vrai langage de script que vous avez sous Unix. Autres que que, pour les choses simples comme simplement runnning une application, prendre un coup d'oeil au script de commande Windows/fichiers batch MS-DOS.
Oui, PowerShell n'est pas installé par défaut sur toutes les versions de Windows à l'exception de Win7, ce qui sera effectivement PowerShell v2.
OriginalL'auteur Scott Dorman
Vous pourriez aller avec un ancien de l'école fichier de commandes (http://en.wikipedia.org/wiki/Batch_file) ou vous pouvez aller avec un tout nouveau brillant script Windows PowerShell (http://www.microsoft.com/technet/scriptcenter/hubs/msh.mspx).
Je utiliser le traitement par lots pour des opérations simples et PowerShell scripts complexes qui impliquent aussi le traitement des données.
OriginalL'auteur Bogdan
Il y a un certain nombre d'options de script sur windows:
OriginalL'auteur Joel Coehoorn
Vous pouvez utiliser un fichier de commandes Windows. Trouver plus d'informations dans l'article de Wikipedia.
OriginalL'auteur Eric Wendelin
Tant que nous sommes suggérant *nix outils de ligne de commande, je vous recommande de vérifier Cygwin ( http://www.cygwin.com ), car il émule un *nix environnement.
OriginalL'auteur Eric Wendelin
La famille Windows NT de Systèmes d'Exploitation (NT 3.51, NT 4.0, 2000, XP, Vista) ont une assez puissant Shell de Commande, même si elle est un peu ésotérique. Cette coque n'a pas le pouvoir de la typique shells UNIX cependant, il est omniprésent sur les machines Windows et c'est assez incroyable ce qui peut être réalisé. Un grand livre pour ce qui est Windows NT Scripts Shell par Timothy Hill. J'ai toujours trouvé Rob van der Woude de Script Pages une grande ressource pour les fichiers de commandes.
PowerShell de Microsoft offres les plus récentes dans ce domaine et prend script à un nouveau niveau entier et vous donne accès à tous de la puissance de l' .NET framework ainsi que WMI, COM et toute autre interface dans Windows. Il est assez raide de la courbe d'apprentissage avec cela, mais il est certainement le chemin à parcourir et je pense qu'il a le potentiel pour devenir l'un de ces fondamentaux de la technologie de compétences (comme les RegEx, XPath, etc) dans le monde Microsoft. Un bon point de départ est Windows PowerShell De Microsoft Technology Center mais il y a un grand nombre de ressources pour cela.
Lien corrigé, merci Johnny.
OriginalL'auteur Martin Hollingsworth
J'ai l'habitude d'utiliser des fichiers batch. Et pour de simples exemples, comme vous avez donné ci-dessus je le fais encore, mais de plus en plus et j'ai été en utilisant python à faire ces sortes de choses. Il a l'avantage supplémentaire de travail sur les plates-formes pour les rares scripts qui sont réellement significatives sur de multiples plateformes.
Python est juste un des nombreux langages de script que vous pouvez utiliser pour ce genre de chose. Perl, ruby ou php peut-être plus votre vitesse. Je trouve qu'un langage de script me donne un son plus riche et plus facile à comprendre la syntaxe si je veux faire quelque chose d'un peu plus compliqué que de simplement lancer un programme avec quelques arguments par défaut.
OriginalL'auteur grieve
par lots des fichiers de travail pour moi. Il suffit de retirer la première ligne, dans votre exemple, et il devrait fonctionner de la même dans win32 ligne de cmd.
note - créer un fichier texte, nom avec une .extension bat et utiliser une barre oblique inverse plutôt que d'une barre oblique.
vrai, merci pour cette remarque.
OriginalL'auteur Tim
Comme une alternative à la puissance de Windows en ligne de commande, pas très parfaitement adaptée à Windows Cygwin ou l'excentrique et lent Powershell, vous pourriez envisager de Hamilton C shell. Je suis l'auteur, alors, évidemment, je suis peut-être biaisé, mais je suis une vraie personne et je ne se soucient essayer de faire mes clients heureux. Hamilton C shell est un programme complet de loisirs de la C UNIX shell et les services publics, mais tout cela est à partir de zéro pour Windows et, en tant que tel, il est conçu pour suivre les Windows conventions pour les noms de fichiers et ainsi de suite. Je viens de publier une nouvelle version de cet été pour Vista qui comprend à la fois 32 bits et les versions 64 bits. (La version 64 bits est environ 2x à 3x plus rapide que la version 32 bits.) Il y a une démo gratuite, de sorte que vous pouvez essayer avant d'acheter.
OriginalL'auteur Nicole Hamilton
Mise à jour: Wow, c'est terriblement obsolète aujourd'hui (mais c'est inévitable). Powershell est certainement deviennent de plus en plus et de plus en plus le choix de la langue pour l'automatisation dans Windows. Il a de nombreux avantages de toute .net la langue (comme le C#) combiné avec beaucoup de l'opportunité qui existe dans toute bonne shell langue, sans de graves inconvénients de fichiers par lots.
Pour ce que ça vaut, les options les plus populaires que j'ai vu à un certain grand, Redmond, entreprise de logiciels (dans le mauvais ordre de popularité):
Beaucoup moins populaire:
Noter que Perl n'a pas besoin de l'installer, il ne nécessite qu'un peu de l'environnement de la variable de mises à jour, donc il est facile de pousser une distro complète dans votre système de contrôle de source de concert avec d'autres outils.
Ma préférence personnelle serait d'éviter de fichiers batch autant que possible, même avec la plus attentive et rigoureuse des processus de la prestation pour le coût n'est tout simplement pas la peine. Vous ne serez jamais jusqu'à la fin avec une solution satisfaisante si vous utilisez le traitement par lots. Perl et Javascript sont tentants à utiliser, mais il y a de gênant déficiences fondamentales qui laissent beaucoup à désirer, sans de solides lignes directrices pour le développement de ces méthodes seront plus susceptibles de ne pas conduire à une faible qualité de code.
Python et Powershell sont de bons candidats, mais je ne suis pas suffisamment habiles avec eux et, plus important encore, beaucoup de gens ne sont pas très familiers avec eux. Peut-être que ce n'est pas une bonne excuse. Minuscule exe peuvent avoir de nombreux problèmes et nécessite de la discipline et de processus afin de s'assurer que la source est toujours vérifié, que l'exe se conformer à certaines normes d'INTERFACE utilisateur (par exemple, ils ont aide utile si vous avez de l'exécution? ou /?), qu'ils ont un évident propriétaire, que le processus de mise à jour de l'exe est détectable, etc.
OriginalL'auteur Wedge
En général, la ligne de commande de windows (DOS) est considéré comme pauvre par rapport à *nix. Vous pouvez installer quelque chose comme Cygwin ou PowerShell si vous voulez un puissant environnement de la commande, ou vous risquez de vous-même une grande douleur et à la souffrance d'essayer en utilisant DOS pour tous vos besoins. 🙂
OriginalL'auteur Ian Varley
WScript.CreateObject("Scripting.FileSystemObject");
a été mon win32 arme de choix de la fin.
OriginalL'auteur Nick Van Brunt
- Je utiliser une combinaison de CScript/JScript. Très puissant une fois que vous apprenez la disposition des objets du système.
OriginalL'auteur Rob
Voici un exemple de fichier de commandes que j'ai fait pour quelqu'un de tout à l'arrière.
Notez que le script s'attend à avoir le 7z.exe programme dans un dossier nommé "Sauvegarde" dans les %homedrive% emplacement. J'ai utilisé Envirnment Variables pour le rendre plus facile pour les différents utilisateurs.
OriginalL'auteur Ben P. Dorsi-Todaro
Bien que shell ont
sh -C ${custom command}
.Essayer
cmd /C ${custom command}
où ${commande personnalisée} stand pour la commande que vous souhaitez obtenir de l'exécution.OriginalL'auteur Salathiel Genèse