web-dev-qa-db-fra.com

scripts inter-plateformes pour Windows, Linux, MacOS X

Je recherche un langage multi-plateforme pour Windows, Linux, MacOS X . Je suis fatigué de .bat/bash.

Je voudrais faire des choses comme, par exemple, verrouiller le poste de travail '' lors de la connexion automatique (j’avais ceci dans X-Window mais la solution était plutôt moche; maintenant, j'aimerais que cela soit sur MS Windows et pas si moche: -)). 
Généralement: automatiser les tâches.

Ou serais-je mieux avec Windows Scripting Host?
On pense aussi à PowerShell, mais cela ne semble à Windows que pour mon goût . Des langages comme Python, Ruby, (Java?) Peuvent-ils interagir (avec élégance? Sensuellement?) Avec WSH?

Des éléments comme DBUS, DCOM, etc. viennent également à l’esprit.

Actuellement, j'utilise un mélange de Java, .bat, bash, Ruby, Scala; certains VBA pour Excel. Ce qui parfois devient assez moche.

Je voudrais une solution générale multiplateforme avec/utilisant des composants natifs '' proches des systèmes d'exploitation. Comme par exemple Ruby pilotant des choses spécifiques à Windows (juste une supposition) ..__
Qu'est ce que tu utilises?
TIA

37
KarolDepka

Je pense que vous jonglez sur le bord du contradictoire: vous voudriez une plate-forme indépendante (louable) mais aussi "proche des spécificités du système d'exploitation".

Si, toutefois, vous mettez un peu plus l'accent sur l'indépendance de la plate-forme, j'ai toujours eu l'idée d'utiliser groovy (un parent de Ruby plus compatible avec Java) pour les scripts à usage général. Lorsque vous en avez besoin, vous obtenez un comportement spécifique au système d'exploitation en appelant des commandes OS Shell.

Ma motivation est un peu différente: je trouve que le code groovy est plus robuste que celui de bash, même si moi aussi j'ai besoin d'un bon outil de script multiplateforme pour un projet que je développe.

Perl et Python sont disponibles sur presque toutes les plateformes

8
PiedPiper

Tu pourrais essayer Batsh

Batsh est un langage de programmation simple qui compile pour Bash et Windows Batch. Il vous permet d'écrire votre script une fois exécuté sur toutes les plates-formes sans dépendance supplémentaire.

6
Simon Hartcher

Vous pouvez écrire vos scripts dans Tcl

  • la syntaxe est simple et plus proche de ce que vous attendez d'un script.

  • il est multi-plateforme et fonctionnera sur toutes les principales plates-formes;

  • vous pouvez facilement créer des interfaces graphiques simples pour vos scripts dans Tk, qui fonctionnent également partout et utilisent des contrôles natifs;

  • pour les fonctions spécifiques à Windows, vous pouvez utiliser Twapi (Win32 API bindings).

  • vous pouvez installer un Tclkit, qui est un fichier unique représentant la distribution complète de Tcl. Il n’ya pas de processus d’installation long, de fichiers cachés ou de répertoires mystérieux;

    • vous pouvez facilement mettre une exécution Linux, Windows et Mac sur un seul lecteur flash, de sorte que vous ayez toujours un interprète à portée de main, même s'il n'en existe aucun installé localement.
4
Tiberiu Ana

Comme par exemple Ruby au volant de choses spécifiques à Windows 

Il peut certainement et sur le Ruby sur Windows blog, vous trouverez de nombreux exemples. Il existe également un chapitre dans le livre Pickaxe et dans le humble one.

2
Jonas Elfström

Je voudrais utiliser C # avec Mono.

1
Simeon

il y a une possibilité pour UNIX et UNIX comme les plates-formes dans Shell, mais je ne pense pas que ce que vous demandez est possible dans n'importe quel langage de script à cause de Windows.

Pour les systèmes UNIX, vous pouvez utiliser ceci:

#!/bin/sh

TYPE=`uname`;
echo 'this is ' ${TYPE};

if [ ${TYPE} = HP-UX ]
   then bdf /var;
Elif [ ${TYPE} = Linux ]
   then df -h /var;
Elif [ ${TYPE} = FreeBSD ]
   then df -k /var;
else echo "Unsupported OS - ${TYPE}"
fi

J'espère que cela vous aidera!

la source

0
vlp

Vous ne savez pas si vous en avez toujours besoin, mais si c'est le cas, essayez ant ( http://ant.Apache.org/ ). C'est un "langage de script" multi-plateforme. Fondamentalement, un fichier ant est un fichier xml interprété par un programme JVM.

0
Nosk