2010-09-13 3 views
1

Je ne suis pas un utilisateur de Linux (oui, je suis désolé!) Et un de mes amis m'a demandé de porter son script shell pour Linux dans un lot pour Windows, parce qu'il veut faire la même chose.toutes les commandes de shell-script dans les commandes de lot portable?

Je n'ai jamais travaillé avec des scripts shell avant et mes compétences en batch sont, hmmm, presque inexistantes, mais je voudrais essayer ça.

Donc, je voudrais demander s'il y a toutes les fonctionnalités shell dans le lot.

merci à l'avance,

Andreas

+0

En général, aucun fichier batch ... est beaucoup moins puissant que les shellscripts complets, par exemple, bash. – Amber

+1

Ambre, c'est principalement parce que le shell d'Unix ne peut pas faire grand chose, traditionnellement. Généralement, chaque commande que vous utilisez est un programme externe - rien ne vous empêche de faire la même chose dans les fichiers batch. A condition que les programmes soient disponibles. – Joey

+0

Andreas: Cela dépend beaucoup de ce dont vous avez besoin. Pourriez-vous fournir des détails sur les fonctionnalités dont vous avez besoin? – Joey

Répondre

0

Les commandes batch sont .BAT qui sont exécutés par le processus CMD de Windows.

Les scripts shell Linux sont un monde et une race à part BATCH..depending au début du script Linux #!/bin/xxxxx où xxxxx pourrait être bash, csh, korn, zsh, cendres ....

Vous peut-être mieux à regarder dans PowerShell (Monad) sous Windows pour atteindre une chose similaire. Un autre lien vers PowerShell ici. Jetez un oeil à PowerShell Scripting Guy site.

En utilisant Powershell pour faire un équivalent du script shell Linux - vous pouvez tirer celui-off ... La notion de remplacement et le concept est d'utiliser AutoIt fonctionnalité de script qui est de base comme ....

La seule chose à garder à l'esprit est ceci, une grande partie de la fonctionnalité de script shell peut référencer d'autres commandes linux qui ne sont pas présentes sur Windows ... en fonction de la complexité du script il peut y avoir des substitutions pour une commande linux (le cas échéant) à Windows commander.

Il pourrait aider à poster le script dans son intégralité ...

0

Lot et des scripts shell (bash, etc) ne sont pas les mêmes. La seule meilleure façon d'y parvenir est de connaître batch/vbscript et shell, puis de les convertir manuellement. Ou vous pouvez installer cygwin ou GNU win32. Ceux-ci vous aideront à exécuter vos scripts shell sur Windows, mais vous devrez peut-être apporter quelques modifications, en fonction de ce qui est écrit.

0

En bref, non. Alors que l'écriture conceptuelle de scripts shell et de fichiers batch est similaire, la syntaxe et les commandes sont totalement différentes. Par exemple, une commande commune dans bash cat est type dans Windows, etc. Généralement, cependant, les commandes DOS doivent avoir des équivalents sous Linux.

Votre script ne fonctionnera pas sous Linux. Si votre ami utilise bash (il le fait probablement), vous pouvez regarder quelques tutoriels et documentation pour "traduire" son script en un script Windows, de la même façon que l'on traduirait un morceau de code écrit en C en Python, une langue totalement différente avec une syntaxe différente mais de nombreuses caractéristiques communes.

Here's un excellent tutoriel que j'ai l'habitude d'apprendre sh, la langue dans laquelle les scripts bash shell sont écrits. C'est un peu rapide, mais si vous pouvez écrire des scripts par lots, la plupart du temps.

Si vous voulez savoir ce qu'est une commande est en bash, la documentation et manuel de référence se trouve here.

Si vous avez besoin d'aide spécifique avec quelque chose dans le script, poster et je suis sûr que quelqu'un va vous dire ce que vous devez faire.

0

La réponse à la question actuelle est non, toutes les commandes shell-script ne fonctionnent pas dans les fichiers Batch de Windows. Mais, cela ne veut pas dire que le script n'a pas pu être porté sur Windows. Il y a beaucoup de langues qui pourraient être employées pour obtenir les résultats désirés. La première étape consiste à définir la sortie requise et les types d'opérations en cours d'exécution, puis vous pouvez déterminer quelle langue convient le mieux à la tâche.

Si vous souhaitez conserver deux versions du programme, vous pouvez utiliser C, C++, AutoIt, C#, VB.Net, etc. pour écrire une version Windows uniquement. OU vous pourriez envisager de porter le script shell existant déjà écrit sous Linux vers un langage tel que Ruby, Python ou Perl - et ensuite il serait plus probable de fonctionner sur Linux et Windows avec beaucoup moins de changements .

Questions connexes