Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
Comparaison des interpréteurs cmd pour linux (et autre)
Auteur Message
Répondre en citant
Message Comparaison des interpréteurs cmd pour linux (et autre) 
Bonjour, cmd est disponible sur Windows mais généralement pas autre part, cependant, des personnes ont créer des implémentations de cmd pour linux et autre, en voici une liste avec ce qui est compatible et ce qui ne l'est pas :
Les résultats peut varier en fonction de la situation etc.

Compatible (par exemple pour for, testé avec cette ligne : "for /f "delims=, tokens=1,2" %A in ('for /l %N in ^(0,1,50^) do echo %N,%N2') do echo %A,%B")
Partiellement compatible
Instable/Erroné
Non supporté


Wine cmd :
- OS supportées : Mac et Linux et Windows(?)
- Exécution sur linux : "wine cmd"
- Code source : http://source.winehq.org/source/programs/cmd/
- Créateur : Wine
- Version testée : 1.9.1
- Image : http://i.imgur.com/2ltBS1P.png

Commandes de base
Syntaxe (ne semble pas faire de différence entre &&, || et |)
Aide
Commandes supplémentaires (find, findstr, net...) (Uniquement les commandes offertes par wine)


ReactOS cmd :
- OS supportées : ReactOS, Windows
- Version testée : 0.3.17
- Createur : ReactOS
- Code source : http://svn.reactos.org/reactos/trunk/reactos/base/shell/cmd/
- Image : http://i.imgur.com/GrEvbHC.png

Commandes de base
Syntaxe
Aide
Commandes supplémentaires (find, findstr, net...)


Dos9 :
- OS supportées : Windows, Linux(quelques soucis lors de la compilation)
- Version testée : 0.9b (version Windows sous Wine)
- Créateur : DarkBatcher
- Code source : http://sourceforge.net/p/dos9/code/ci/master/tree/
- Image : http://i.imgur.com/cTmac9i.png

Commandes de base (le double for retourne une erreur)
Syntaxe
Aide (une erreur a la place de help)
Commandes supplémentaires (find, findstr, net...)


OpenBatch :
- OS supportées : Windows, Mac, Linux, *BSD (toutes les plate-formes supportées par mono)
- Version testée : 0.1.2c-experimental
- Execution sur Linux : "mono OpenBatchV2.exe" dans le dossier d'Openbatch
- Créateur : TSnake41
- Code source : http://batch.xoo.it/t4563-C-Alpha-OpenBatch-V2-0.htm (inclus dans l'archive)
- (version 0.1.2c-experimental) : http://batch.xoo.it/p37887.htm
- Image : http://i.imgur.com/cxwot1d.png

Commandes de base (des commandes sont manquantes et for et if ne sont pas supportées)
Syntaxe (les parenthéses et les pipes ne sont pas supportées)
Aide (l'aide est incomplète)
Commandes supplémentaires (find, findstr, net...) (quelques commandes supplémentaires comme timout)




______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message Re: Comparaison des interpréteurs cmd pour linux (et autre) 
TSnake41 a écrit:
Dos9 :
- OS supportées : Windows, Linux(quelques soucis lors de la compilation)
- Version testée : 0.9b (version Windows sous Wine)
- Créateur : DarkBatcher
- Code source : http://sourceforge.net/p/dos9/code/ci/master/tree/
- Image : http://i.imgur.com/cTmac9i.png

Commandes de base (le double for retourne une erreur)
Syntaxe
Aide (une erreur a la place de help)


[troll]Franchement, tu abuses, Dos9 est surement l'interpréteur batch avec la doc la plus complète cf. http://dos9.org/doc/fr/html/dos9.html [/troll]
En vrai, l'instalation a du boguer parce que "HELP" est un alias sur "hlp.bat" un script avec toutes les pages d'aides que y'a sur internet Wink

En ce qui concerne la compatibilité, tu m'as bien eu, parce que je n'y avais pas pensé à ça Mr. Green Sinon, normalement, pour les for,
j'ai fais un bon gros pavé qui décrit *exactement* comment dos9 se comporte http://dos9.org/doc/fr/html/for-tech.html Razz

En tout cas merci pour cette petite comparaison Okay

@+




______________________________________________________
--
> Que pensez vous de l'ajout du repertoire point dans $PATH ?
Ma version de troll 18.0.32 beta 3 vient de me faire un core dump.
-+- SE in Guide du Linuxien Pervers : Bien développer son troll -+-

[Dos9]
Visiter le site web du posteur Skype
Répondre en citant
Message Comparaison des interpréteurs cmd pour linux (et autre) 
Petite question pour Dark, est-ce que Dos9 est multiTread (ou multi-coeur) ? Car ça boosterais pas mal les perfs sous un bat non ?

@ ++ Wink Okay




______________________________________________________
Coucou, tu veux voir mon Site Web ?? Mort de Rire
Visiter le site web du posteur Skype
Répondre en citant
Message Comparaison des interpréteurs cmd pour linux (et autre) 
Xenoxis a écrit:
Petite question pour Dark, est-ce que Dos9 est multiTread (ou multi-coeur) ? Car ça boosterais pas mal les perfs sous un bat non ?

@ ++ Wink Okay


Je pense que tu dois parler du "parsing" multiThread, c'est a dire, l'étape qui convertit la commande en quelque chose pour le programme pour être ensuite exécute, le soucis et que dans Dos9 et OpenBatch, la lecture d'une ligne se fait de gauche a droite donc y implémenter une lecture multiThread est difficile et généralement inefficace.




______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Répondre en citant
Message Comparaison des interpréteurs cmd pour linux (et autre) 
TSnake41 a écrit:
Xenoxis a écrit:
Petite question pour Dark, est-ce que Dos9 est multiTread (ou multi-coeur) ? Car ça boosterais pas mal les perfs sous un bat non ?

@ ++ Wink Okay


Je pense que tu dois parler du "parsing" multiThread, c'est a dire, l'étape qui convertit la commande en quelque chose pour le programme pour être ensuite exécute, le soucis et que dans Dos9 et OpenBatch, la lecture d'une ligne se fait de gauche a droite donc y implémenter une lecture multiThread est difficile et généralement inefficace.

En effet, comme le dit très bien TS, batch est un langage impératif, (le remplacement des variable et tout le reste sont des taches effectuées les unes après les autres) donc ça laisse peut de place pour la paraléllisation ...

Pour ce qui concerne la possibilité d'avoir des batch multi-threadés, j'y ai pensé (et essayé), mais après une version de test bien pourrie, j'ai abandonné l'idée...
En fait paralléliser pause pas mal de petits problèmes en particulier sur les redirections...

Bref, je pense que pour ce genre de tache, il vaut mieux faire tourner deux batchs sur deux instances différentes de l'interpréteur et de trouver un moyen de les faire communiquer ...




______________________________________________________
--
> Que pensez vous de l'ajout du repertoire point dans $PATH ?
Ma version de troll 18.0.32 beta 3 vient de me faire un core dump.
-+- SE in Guide du Linuxien Pervers : Bien développer son troll -+-

[Dos9]
Visiter le site web du posteur Skype
Répondre en citant
Message Comparaison des interpréteurs cmd pour linux (et autre) 
Darkbatcher a écrit:
TSnake41 a écrit:
Xenoxis a écrit:
Petite question pour Dark, est-ce que Dos9 est multiTread (ou multi-coeur) ? Car ça boosterais pas mal les perfs sous un bat non ?

@ ++ Wink Okay


Je pense que tu dois parler du "parsing" multiThread, c'est a dire, l'étape qui convertit la commande en quelque chose pour le programme pour être ensuite exécute, le soucis et que dans Dos9 et OpenBatch, la lecture d'une ligne se fait de gauche a droite donc y implémenter une lecture multiThread est difficile et généralement inefficace.

En effet, comme le dit très bien TS, batch est un langage impératif, (le remplacement des variable et tout le reste sont des taches effectuées les unes après les autres) donc ça laisse peut de place pour la paraléllisation ...

Pour ce qui concerne la possibilité d'avoir des batch multi-threadés, j'y ai pensé (et essayé), mais après une version de test bien pourrie, j'ai abandonné l'idée...
En fait paralléliser pause pas mal de petits problèmes en particulier sur les redirections...

Bref, je pense que pour ce genre de tache, il vaut mieux faire tourner deux batchs sur deux instances différentes de l'interpréteur et de trouver un moyen de les faire communiquer ...


Sinon, l'idée de OpenBatch (la commande thread) permet de faire une commande sur un autre thread que celui de base (par exemple, faire un call en parallèle avec un autre), le soucis est que c'est pas très performant a cause de la difficulté à la lecture aléatoire sur un disque dur mais il reste quand même intéressant de faire fonctionner la commande (voyez un petit aperçu avec "thread 0").




______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Répondre en citant
Message Comparaison des interpréteurs cmd pour linux (et autre) 
Serait-il possible ,du fait que le batch soit lu directement depuis le disque dur au niveau des commandes, de faire une "prélecture" du fichier batch et de mettre les commandes utilisés en mémoire, car si je me souvient dans le langage batch, seul les variables sont dans la RAM, alors que les commandes sont lu les unes après les autres dans le fichier (se qui explique une perte de performances sur un batch quand le disque dur est fragmenté ou quand on lance un batch depuis une cléf usb ...)

Citation:
En effet, comme le dit très bien TS, batch est un langage impératif, (le remplacement des variable et tout le reste sont des taches effectuées les unes après les autres) donc ça laisse peut de place pour la paraléllisation ...


Mais comme ici c'est vous qui créé l'interpréteur, vous pouvez donc changer le fonctionnement du langage en quelque sorte ... Donc faire en sorte que le batch ne soit plus un langage impératif ...
@ ++ Okay Wink




______________________________________________________
Coucou, tu veux voir mon Site Web ?? Mort de Rire
Visiter le site web du posteur Skype
Répondre en citant
Message Comparaison des interpréteurs cmd pour linux (et autre) 
Citation:
Serait-il possible ,du fait que le batch soit lu directement depuis le disque dur au niveau des commandes, de faire une "prélecture" du fichier batch et de mettre les commandes utilisés en mémoire, car si je me souvient dans le langage batch, seul les variables sont dans la RAM, alors que les commandes sont lu les unes après les autres dans le fichier (se qui explique une perte de performances sur un batch quand le disque dur est fragmenté ou quand on lance un batch depuis une cléf usb ...)

C'est comment fonctionne OpenBatch, toutes les commandes sont misent en mémoire dans le démarrage d'OpenBatch :
Code:
 Initialisation des commands de base.
// PS: Il sera également possible d'ajouter des commandes avec l'extention C# pour ajouter des commandes a partir de fichiers (Mono.CSharp). [i](on parle d'extensibilité (ajouter des commandes via des .dll ou des .exe en MSIL))[/i]
#region Commands
new EchoCommand().AddToCommandDictionary();
new EchoDotCommand().AddToCommandDictionary();
new TestAsync().AddToCommandDictionary();
new ColorCommand().AddToCommandDictionary();
new ClearCommand().AddToCommandDictionary();
new TypeCommand().AddToCommandDictionary();
new PauseCommand().AddToCommandDictionary();
new ExitCommand().AddToCommandDictionary();
new TitleCommand().AddToCommandDictionary();
new HelpCommand().AddToCommandDictionary();
new SetCommand().AddToCommandDictionary();
new RemComment().AddToCommandDictionary();
new GotoCommand().AddToCommandDictionary();
new MDCommand().AddToCommandDictionary();
new MkdirCommand().AddToCommandDictionary();
new DelCommand().AddToCommandDictionary();
new EraseCommand().AddToCommandDictionary();
new RenameCommand().AddToCommandDictionary();
new RenCommand().AddToCommandDictionary();
new MultiThreadingCommand().AddToCommandDictionary();
new LicenceCommand().AddToCommandDictionary();
new TimeoutCommand().AddToCommandDictionary();
#endregion





______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Répondre en citant
Message Comparaison des interpréteurs cmd pour linux (et autre) 
C'est exactement pareil avec le CMD. Tout les commandes sont initialisé avec le lancement de l'interpreteur Shocked , à part qqes exceptions tel que find, findstr.

Mais il est clair que la commande echo ou IF ou FOR sont preloadé en lançant l'interpreteur.

Okay




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message Comparaison des interpréteurs cmd pour linux (et autre) 
sachadee a écrit:
C'est exactement pareil avec le CMD. Tout les commandes sont initialisé avec le lancement de l'interpreteur Shocked , à part qqes exceptions tel que find, findstr.

Mais il est clair que la commande echo ou IF ou FOR sont preloadé en lançant l'interpreteur.

Je pense qu'il parlait des fichiers batchs qui sont ouverts, puis fermés à chaque fois qu'on lit un ligne...

En ce qui concerne les commandes, c'est identique à CMD : il y a des commandes internes (qui sont contenues dans l'interpréteur) et des commandes externes.
En gros, les commandes internes doivent quand même se limiter aux commandes de base du batch, afin de pas sortir un interpréteur trop volumineux ...




______________________________________________________
--
> Que pensez vous de l'ajout du repertoire point dans $PATH ?
Ma version de troll 18.0.32 beta 3 vient de me faire un core dump.
-+- SE in Guide du Linuxien Pervers : Bien développer son troll -+-

[Dos9]
Visiter le site web du posteur Skype
Répondre en citant
Message Comparaison des interpréteurs cmd pour linux (et autre) 
Darkbatcher a écrit:
sachadee a écrit:
C'est exactement pareil avec le CMD. Tout les commandes sont initialisé avec le lancement de l'interpreteur Shocked , à part qqes exceptions tel que find, findstr.

Mais il est clair que la commande echo ou IF ou FOR sont preloadé en lançant l'interpreteur.

Je pense qu'il parlait des fichiers batchs qui sont ouverts, puis fermés à chaque fois qu'on lit un ligne...

En ce qui concerne les commandes, c'est identique à CMD : il y a des commandes internes (qui sont contenues dans l'interpréteur) et des commandes externes.
En gros, les commandes internes doivent quand même se limiter aux commandes de base du batch, afin de pas sortir un interpréteur trop volumineux ...


Oui je parlais des fichiers batch, et est-il possible de charger batbox en mémoire une seule fois sans que le batch ne lise à chaque fois le fichier batbox (en gros mettre en cache batbox,ou n'importe quel autre fichier d'un seul coup, après je sais qu'il y a l'OS qui peux le faire mais faut l'ouvrir des milliers de fois ...)

@ ++ Okay Wink




______________________________________________________
Coucou, tu veux voir mon Site Web ?? Mort de Rire
Visiter le site web du posteur Skype
Répondre en citant
Message Comparaison des interpréteurs cmd pour linux (et autre) 
Xenoxis a écrit:
Darkbatcher a écrit:
sachadee a écrit:
C'est exactement pareil avec le CMD. Tout les commandes sont initialisé avec le lancement de l'interpreteur Shocked , à part qqes exceptions tel que find, findstr.

Mais il est clair que la commande echo ou IF ou FOR sont preloadé en lançant l'interpreteur.

Je pense qu'il parlait des fichiers batchs qui sont ouverts, puis fermés à chaque fois qu'on lit un ligne...

En ce qui concerne les commandes, c'est identique à CMD : il y a des commandes internes (qui sont contenues dans l'interpréteur) et des commandes externes.
En gros, les commandes internes doivent quand même se limiter aux commandes de base du batch, afin de pas sortir un interpréteur trop volumineux ...


Oui je parlais des fichiers batch, et est-il possible de charger batbox en mémoire une seule fois sans que le batch ne lise à chaque fois le fichier batbox (en gros mettre en cache batbox,ou n'importe quel autre fichier d'un seul coup, après je sais qu'il y a l'OS qui peux le faire mais faut l'ouvrir des milliers de fois ...)

@ ++ Okay Wink


Ce genre de chose est possible a faire en C# uniquement pour des applications C#, c'est un peu le principe de l'extensibilité d'OpenBatch.

ça ressemble un peu à ça :
Code:
// Préchargement du .exe
Assembly ProgramAssembly = Assembly.LoadFile("test.exe");
// Exécution :
// Une 1ere fois
ProgramAssembly.EntryPoint.Invoke(null, new[] { "(Arguments)" });
// Une 2eme fois
ProgramAssembly.EntryPoint.Invoke(null, new[] { "(Arguments)" });
// Et une 3eme fois
ProgramAssembly.EntryPoint.Invoke(null, new[] { "(Arguments)" });





______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Répondre en citant
Message Comparaison des interpréteurs cmd pour linux (et autre) 
Xenoxis a écrit:
Darkbatcher a écrit:
sachadee a écrit:
C'est exactement pareil avec le CMD. Tout les commandes sont initialisé avec le lancement de l'interpreteur Shocked , à part qqes exceptions tel que find, findstr.

Mais il est clair que la commande echo ou IF ou FOR sont preloadé en lançant l'interpreteur.

Je pense qu'il parlait des fichiers batchs qui sont ouverts, puis fermés à chaque fois qu'on lit un ligne...

En ce qui concerne les commandes, c'est identique à CMD : il y a des commandes internes (qui sont contenues dans l'interpréteur) et des commandes externes.
En gros, les commandes internes doivent quand même se limiter aux commandes de base du batch, afin de pas sortir un interpréteur trop volumineux ...


Oui je parlais des fichiers batch, et est-il possible de charger batbox en mémoire une seule fois sans que le batch ne lise à chaque fois le fichier batbox (en gros mettre en cache batbox,ou n'importe quel autre fichier d'un seul coup, après je sais qu'il y a l'OS qui peux le faire mais faut l'ouvrir des milliers de fois ...)

@ ++ Okay Wink

Techniquement, c'est possible ... Mais pas supporté, après les fichiers chargés une seule fois c'est pas dur à faire Razz




______________________________________________________
--
> Que pensez vous de l'ajout du repertoire point dans $PATH ?
Ma version de troll 18.0.32 beta 3 vient de me faire un core dump.
-+- SE in Guide du Linuxien Pervers : Bien développer son troll -+-

[Dos9]
Visiter le site web du posteur Skype
Message Comparaison des interpréteurs cmd pour linux (et autre) 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch