PeJBshell   - un Shell pour embêter inspiré par Jacques Barathon  

 PeJBshell est un shell Conjuguant les possibilités des BATCHs (invite de commande), la puissance et la souplesse de PYTHON, et l'accès aux librairies et ressources de PONX.

 


 Version actuelle

La dernière version est :   0.16    

Dernières modifications :

  • correction d'un problème d'affichage, lors de l'exécution des macros (ajout d'un retour-chariot).
  • ajout de la possibilité de saisie multi-lignes (.MULTI) dans les macros 

 Copie d'écran

 


 Installation 

Il faut installer :

  • Python
  • PyWin32
  • Ctypes
  • Console
  • Ponx (facultatif, mais fortement recommandé). L'installation de Ponx contient les éléments précédents. Pour l'installation de Ponx voir plus loin, dans cette page.
  • Téléchargez  pejbshell.py, et copiez-le dans  C:\ponx\  Si vous avez installé Ponx, cette étape est inutile.
  • Téléchargez  PeJBshell-C.lnk, et copiez-le dans  C:\ponx\  Si vous avez installé Ponx, cette étape est inutile.
  • Copiez ce dernier raccourci (fichier C:\ponx\PeJBshell-C.lnk) sur le bureau. Vous pouvez ensuite modifier ses propriétés, notamment le répertoire de démarrage.

 Console

J'ai adopté la console de Effbot (http://effbot.org/downloads/#console).
Cela permet d'embarquer/piloter la console dans/depuis d'autres applications ou langages.
Cela permet également une gestion plus fine de la saisie (clavier). 


 Modes

Il y a trois modes de fonctionnement :

  • DOS : les commandes de type DOS (invite de commande) peuvent être utilisées directement.
  • PYTHON : les commandes de type DOS (invite de commande) peuvent être utilisées directement.
  • MULTI : pseudo-mode temporaire de saisie d'une commande multi-lignes.

Pour connaître le mode courant :  .PMODE [Entrée]

Pour passer d'un mode à l'autre :  .PMODE(DOS)  ou  .PMODE(PYTHON). Astuce : vous pouvez taperr simplement .PMODE(D) ou .PMODE(P)  


 Les commandes Globales

Ces commande fonctionnent dans tous les modes de fonctionnement.

Ce sont :

  • QUIT ou EXIT pour quiiter PeJBshell
  • .Q raccourci pour QUIT
  • CD xxx  permet de changer le répertoire courant, lecteur (Drive) y compris (comme CD /D)
  • .PMODE  pour connaître le mode courant
  • .PMODE(DOS) ou .PMODE(PYTHON) change le mode courant
  • .DOS  synonyme pour .PMODE(DOS)
  • .PYT  synonyme pour .PMODE(PYTHON)
  • .EMPTY vide les buffers d'entrées et de sorties.
  • .EDIT lance l'éditeur par défaut, avec le buffer des entrées.
  • .OUTEDIT lance l'éditeur par défaut, avec le dernier résultat
  • ..XXX   (point point)  pour lancer une macro

 Le prompt

Il affiche le numéro du buffer courant, suivi du répertoire courant.


 Les flèches de rappel (flèche haute, et flèche basse)

Comme sous DOS, les flèches permettent de rappeler les commandes précédentes. 


 Tabulation / complétion

Des appuis successifs sur la touche TAB donne une complétion avec le DIR du répertoire courant.


 Mode DOS

La plupart des commandes de l'invite de commande fonctionne.

Cependant :

  • les commandes interactives, (les questions ou confirmations) sont ignorées. Elles peuvent même bloquer le shell. Evitez de les utiliser (sauf en mode silencieux/quiet).
  • La commande CD est traitée différemment.

Pour des exemples de commandes DOS, cliquez_ici.

Si, en mode DOS, une commande commence par un point ("."), elle est traitée, à la volée, comme une commande Python.


 Mode Python

Un nombre important des commandes du shell Python fonctionnent.
Les modules  sys, os, os.path, shutil  sont préchargés, avec un appel direct des fonctions.

Quelques fonctions prédéfinies :

  • lload(fichier)   charge un fichier-texte dans une liste, à raison d'un élément par ligne
  • lwrite(fichier,liste)  écrite une liste dans un fichier-texte
  • bufferin(num)  récupère le buffer d'entrée numéro num ; les numéros négatifs sont relatifs au numéro courant.
  • bufferout(num)  récupère le buffer de sortie numéro num ; les numéros négatifs sont relatifs au numéro courant.
  • lbufferin(num)  récupère le buffer d'entrée numéro num,  dans une liste ; les numéros négatifs sont relatifs au numéro courant.
  • lbufferout(num)  récupère le buffer de sortie numéro num, dans une liste ; les numéros négatifs sont relatifs au numéro courant. 
  • trtDOS(...)  traite une chaîne comme une commande DOS.

Pour des exemples de commandes PYTHON, cliquez_ici.

Si, en mode PYTHON, une commande commence par un point ("."), elle est traitée, à la volée, comme une commande DOS.


 Appel de fonctions Ponx

Ponx est pré-chargé, s'il est installé. Les préfixes sont :

  • px  pour Ponx classique
  • pxd pour Ponx dynamique

Pour des exemples de commandes PONX, il faudra attendre encore un peu.


 Exécution d'un fichier Python externe

execfile  fonctionne bien.


 Edition

La commande  .EDIT  permet de lancer l'éditeur courant (wordpad ou notepad), avec les 100 dernières commandes entrées.

La commande .OUTEDIT permet de lancer l'éditeur avec le résultat de la dernière commande.


 Macros

Il est possible de lancer des macros. Mais, les macros sont, pour l'instant, de simples listes de commandes.
En pratique, il s'agit d'un simple fichier texte. La commande, pour lancer une macro, c'est :
   ..XXX    (point point nom_fichier_macro)


 Utilisation depuis Python 

Il est possible d'mporter le module pejbshell.
La fonctione principale est  mainloop( répertoire_de_départ, liste_macro_initiale)
Il est ensuite possible d'appeler les propriétés suivantes du module :

    • lint[numéro] pour les commandes entrées
    • lout[numéro] pour les résultats

 Définition d'une fonction python (exemple) 

1er exemple :

  • Passez en mode Python :   .pmode(p)
  • tapez :   def toto(a):  return(a*11)
  • tapez :   print toto(123)

 2ème exemple :

  • Passez en mode multi :      .multi
  • tapez :       def titi(a,b):
  • tapez :           c=a+b                      #avec 4 espaces au début de la ligne)
  • tapez :           return(c)                 #avec 4 espaces au début de la ligne)
  • terminez le multi :    end
  • tapez :  print titi(1111,222)

 Chargement d'un module Python

utilisez    import XXX     ou    from XXX import * 


 Divers

Le fichier temp.txt est réservé, pour usage interne. 


 Installation de Ponx en ligne

Il est désormais possible d'installer Ponx en ligne.

Pour cela, il faut :


 

Dernières nouvelles : 

 - Ponx est maintenant en version 3.226 
 - PeJBshell est sorti en version 0.16 
 - PPAW est visible là :  PPAW


Généralités

    Qu'est-ce que Ponx ? 
    Quelle version ? 
    Contenu 
    Architecture
    Vrac & vieilles annonces

 

Autres
   Sapeur

   RunPlus