Picobat
# Picobat

Le projet Picobat (anciennement Dos9) est un projet d'interpréteur de commandes libre dédié à la programmation batch (fichiers MS-DOS .bat). Il propose également des fonctionnalités non présentes dans cmd.exe, comme le support des nombres décimaux.

Cet interpréteur de commandes fonctionne dans les environnements Microsoft Windows et POSIX. Il peut constituer une alternative à cmd.exe.

## Objectifs

Le projet Picobat a plusieurs objectifs :

* la liberté : support d'un maximum de plateformes ;
* la compatibilité : une certaine compatibilité avec cmd.exe ;
* la rapidité : plus rapide que cmd.exe ;
* la légèreté : simple à déployer.

## Extensions de Picobat

Afin de rendre la programmation en batch moins limitée et plus simple, le projet Picobat ajoute diverses fonctionnalités au langage .bat.

### Commandes internes étendues

**goto**

Sous Picobat, la commande "« goto » peut rechercher l'étiquette dans un fichier spécifié, également, le commutateur "/Q" permet de désactiver l'affichage d’erreur en cas d'étiquette introuvable.

**set /a**

Dans le projet Picobat, la commande « set » peut effectuer des calculs avec des nombres entiers mais également avec des nombres décimaux ; le mode FLOATS permet de calculer par défaut avec des nombres décimaux, si ce mode est activé, tous les calculs s'effectuant avec des nombres décimaux, à l'inverse, avec des nombres entiers.

Il est également possible de forcer le calcul avec des nombres entiers ou des nombres décimaux en modifiant le commutateur "« /a ».

Par ailleurs, les expressions peuvent contenir plus d'opérateurs :

* Avec le calcul de nombres entiers, les conjonction et disjonction logiques sont supportées (respectivement les opérateurs && et ||).
* Avec le calcul de nombres décimaux, de nombreuses fonctions mathématiques comme celles de la trigonométrie, ou encore des constantes mathématique telles que Pi ou encore e sont supportées.

**if**

La commande « if » en plus de supporter les nombres entiers, supporte les nombres décimaux. La comparaison FEQ permet de comparer avec une précision de 10^-13 les nombres décimaux, alors que la comparaison traditionnelle EQU n'a pas de limite de précision.

### Commandes externe intégrées

**find**

Sur Picobat, la commande « find » est directement intégrée à l'interpréteur et n'est pas offerte séparément, à l'inverse de cmd.exe.

### Commandes externe fournies

Picobat développe et fournit diverses commandes utiles qui ne sont pas nécessairement présentes sur cmd.exe.

**pbatize**

Cette commande permet de remplacer certains passages dans des programmes Batch pour corriger certains soucis (en particulier avec certains arguments non espacés).

**dump**

Cette commande permet d'afficher dans divers formats (hexadécimal, octal, décimal) des fichiers.

Elle est utilisée pour, par exemple, générer des codes permettant d'embarquer des fichiers dans un fichier texte.

**tea**

« tea » est un préprocesseur de texte notamment utilisé dans la documentation et l'aide de Picobat.

**iconv**

« iconv » permet de convertir un texte entre plusieurs encodages, elle n'est pas fournie sur Linux comme elle est généralement déjà présente dans le système.

