obsolete:informatique:batch
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
obsolete:informatique:batch [2024/11/19 19:23] – supprimée - modification externe (Date inconnue) 127.0.0.1 | obsolete:informatique:batch [2024/11/20 11:48] (Version actuelle) – alexis | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Batch ====== | ||
+ | |||
+ | ===== Utiliser l' | ||
+ | * Activer/ | ||
+ | <code dos> | ||
+ | rem Activation | ||
+ | echo on | ||
+ | |||
+ | rem Désactivation | ||
+ | @echo off | ||
+ | </ | ||
+ | * Afficher une ligne vide | ||
+ | <code dos> | ||
+ | rem Première solution | ||
+ | echo. | ||
+ | |||
+ | rem Deuxième solution | ||
+ | echo[ | ||
+ | |||
+ | rem Troisième solution (non recommandée) | ||
+ | rem Utiliser un caractère ASCII blanc (ALT+255) | ||
+ | </ | ||
+ | |||
+ | ===== Utiliser les pipes (" | ||
+ | Elles fonctionnent comme avec Bash. Elles permettent de rediriger la sortie standard d'une commande vers l' | ||
+ | <code dos> | ||
+ | rem Rechercher la chaîne " | ||
+ | dir /S /B *.php | findstr /I /M /R /F:/ mysql | ||
+ | </ | ||
+ | Dans le cas d'une utilisation dans une boucle '' | ||
+ | <code dos> | ||
+ | rem L' | ||
+ | for /F %%I in ('dir /S /B *.php | findstr /I /M /R /F:/ mysql' | ||
+ | echo %%I | ||
+ | ) | ||
+ | |||
+ | rem Il faut échapper le pipe avec le caractère " | ||
+ | for /F %%I in ('dir /S /B *.php ^| findstr /I /M /R /F:/ mysql' | ||
+ | echo %%I | ||
+ | ) | ||
+ | </ | ||
+ | |||
+ | ===== Boucle for ===== | ||
+ | |||
+ | ==== Utilisation ==== | ||
+ | * Avec une série de valeurs | ||
+ | <code dos> | ||
+ | @echo off | ||
+ | for %%O in (1 2 3) do ( | ||
+ | rem Faire quelque chose | ||
+ | ) | ||
+ | </ | ||
+ | |||
+ | * Avec une série de fichiers | ||
+ | <code dos> | ||
+ | rem Les fichiers doivent évidemment exister pour pouvoir être manipulés | ||
+ | @echo off | ||
+ | for /F %%O in (< | ||
+ | rem Faire quelque chose | ||
+ | ) | ||
+ | </ | ||
+ | |||
+ | * Avec la sortie d'une commande | ||
+ | <code dos> | ||
+ | @echo off | ||
+ | for /F %%O in (' | ||
+ | rem Faire quelque chose | ||
+ | ) | ||
+ | </ | ||
+ | |||
+ | * En utilisant les jetons et les délimiteurs | ||
+ | <code dos> | ||
+ | @echo off | ||
+ | rem Extraction de la date du système | ||
+ | rem Attention à la commande date qui renvoie un espace en fin de chaîne | ||
+ | for /F " | ||
+ | </ | ||
+ | ==== Expansion des variables ==== | ||
+ | Dans une boucle '' | ||
+ | <code dos> | ||
+ | rem La sortie sera, contre toute attente : | ||
+ | rem 3 | ||
+ | rem 3 | ||
+ | rem 3 | ||
+ | @echo off | ||
+ | for %%O in (1 2 3) do ( | ||
+ | set OPTION=%%O | ||
+ | echo %OPTION% | ||
+ | ) | ||
+ | </ | ||
+ | C'est dû au fait que l' | ||
+ | <code dos> | ||
+ | rem La sortie sera : | ||
+ | rem 1 | ||
+ | rem 2 | ||
+ | rem 3 | ||
+ | @echo off | ||
+ | setlocal EnableDelayedExpansion | ||
+ | for %%O in (1 2 3) do ( | ||
+ | set OPTION=%%O | ||
+ | echo !OPTION! | ||
+ | ) | ||
+ | </ | ||
+ | Il est possible de modifier les variables lors de leur expansion grâce à certains marqueurs : | ||
+ | ^ Marqueur ^ Action ^ | ||
+ | | %~I | enlève les guillements (") autour de %I | | ||
+ | | %~fI | convertit %I en un chemin qualifié complet | | ||
+ | | %~dI | convertit %I en une lettre de disque | | ||
+ | | %~pI | convertit %I en un chemin seulement | | ||
+ | | %~nI | convertit %I en nom de fichier seulement | | ||
+ | | %~xI | convertit %I en extension seulement | | ||
+ | | %~sI | convertit %I en un chemin contenant seulement des noms courts | | ||
+ | | %~aI | convertit %I en attributs du fichier | | ||
+ | | %~tI | convertit %I en date et heure du fichier | | ||
+ | | %~zI | convertit %I en taille du fichier | | ||
+ | | %~$PATH:I | recherche dans la liste des répertoires définis dans la variable d' | ||
+ | Il est possible de combiner ces marqueurs. Par exemple : | ||
+ | <code dos> | ||
+ | rem Convertit %I en lettre de disque et chemin | ||
+ | %~dpI | ||
+ | |||
+ | rem Convertit %I en nom de fichier et extension | ||
+ | %~nxI | ||
+ | |||
+ | rem Convertit %I en chemin complet avec noms courts | ||
+ | %~fsI | ||
+ | </ | ||
+ | ===== Utiliser un tableau ===== | ||
+ | Les tableaux n' | ||
+ | En effet, si l'on cré des variables commençant de la même façon, il est possible de les récupérer et de les lire séquentiellement. Pour une utilisation et une compréhension aisée, il est recommandé de nommer ces variables '' | ||
+ | <code dos> | ||
+ | rem Affectation des variables | ||
+ | set __TYPE.1=php | ||
+ | set __TYPE.2=yml | ||
+ | set __TYPE.3=ini | ||
+ | |||
+ | rem Affichage des variables | ||
+ | set __TYPE. | ||
+ | rem La commande précédente affiche : | ||
+ | rem __TYPE.1=php | ||
+ | rem __TYPE.2=yml | ||
+ | rem __TYPE.3=ini | ||
+ | </ | ||
+ | |||
+ | De cette manière, il est possible de boucler sur les variables retournées et d'en extraire leur valeur. Par exemple : | ||
+ | <code dos> | ||
+ | rem En utilisant les variables définies précédemment | ||
+ | for /F " | ||
+ | echo %%I | ||
+ | ) | ||
+ | rem La commande précédente affiche : | ||
+ | rem php | ||
+ | rem yml | ||
+ | rem ini | ||
+ | </ | ||
+ | |||
+ | Pour plus d' | ||
+ | ===== Erreurs ===== | ||
+ | * '' | ||
+ | * '' | ||
+ | ===== Divers ===== | ||
+ | * Tester l' | ||
+ | <code dos> | ||
+ | if exist %VAR%\NUL echo C'est un répertoire | ||
+ | </ | ||
+ | * Lire l' | ||
+ | <code dos> | ||
+ | for %%O in (%*) do ( | ||
+ | rem Faire quelque chose | ||
+ | ) | ||
+ | </ | ||
+ | |||
+ | ===== Liens utiles ===== | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||