Script Batch - Chaînes de caractères

Introduction aux chaînes de caractères dans les scripts Batch

Bonjour, futurs programmeurs ! Aujourd'hui, nous allons plonger dans le merveilleux monde des chaînes de caractères dans les scripts Batch. En tant que votre professeur d'informatique bienveillant du quartier, je suis excité de vous guider dans ce voyage. Ne vous inquiétez pas si vous n'avez jamais écrit une ligne de code auparavant - nous allons commencer dès le début !

Batch Script - Strings

Une chaîne de caractères, en termes simples, est une séquence de caractères. Cela pourrait être un mot, une phrase ou même un paragraphe entier. Dans les scripts Batch, nous utilisons des chaînes de caractères tout le temps pour afficher des messages, stocker des informations et manipuler du texte.

Opérations de base sur les chaînes de caractères

Affichage des chaînes de caractères

Commençons par l'opération la plus basique - l'affichage d'une chaîne. En Batch, nous utilisons la commande echo pour cela.

@echo off
echo Bonjour, le monde !
pause

Enregistrez cela sous hello.bat et exécutez-le. Vous verrez "Bonjour, le monde !" affiché sur votre écran. @echo off au début est une bonne pratique pour maintenir un output propre de votre script, et pause à la fin garde la fenêtre ouverte pour que vous puissiez voir le résultat.

Stockage des chaînes de caractères dans des variables

Maintenant, stockons notre chaîne dans une variable :

@echo off
set message=Bonjour, scripting Batch !
echo %message%
pause

Ici, nous utilisons la commande set pour stocker notre chaîne dans une variable appelée message. Pour utiliser la variable, nous l'entourons de signes de pourcentage.

Concaténation de chaînes

Joindre des chaînes ensemble (concaténation) est une opération courante. En Batch, c'est aussi simple que de les mettre côte à côte :

@echo off
set firstName=Jean
set lastName=Dupont
set fullName=%firstName% %lastName%
echo Nom complet : %fullName%
pause

Ce script affichera "Nom complet : Jean Dupont". Notez comment nous avons ajouté un espace entre %firstName% et %lastName% pour les séparer.

Travail avec l'entrée utilisateur

Faisons nos scripts interactifs en obtenant l'entrée de l'utilisateur :

@echo off
set /p name=Quel est votre nom ?
echo Ravi de vous rencontrer, %name% !
pause

Le commutateur /p avec set nous permet de demander à l'utilisateur de saisir une entrée. Essayez d'exécuter ce script et d'entrer votre nom !

Manipulation des chaînes

Extraction de sous-chaînes

Batch nous permet d'extraire des parties d'une chaîne en utilisant la syntaxe %variable:~start,length% :

@echo off
set message=Bonjour, le monde !
echo %message:~0,5%
echo %message:~7,5%
pause

Cela affichera :

Bonjour
le monde

La première echo extrait des caractères de la position 0 à 5, et la seconde de la position 7 à 5 caractères après cela.

Remplacement de parties de chaînes

Nous pouvons également remplacer des parties d'une chaîne :

@echo off
set phrase=Le renard brun rapide saute par-dessus le chien paresseux
echo %phrase:renard=chat%
pause

Cela remplace "renard" par "chat" dans notre phrase.

Opérations avancées sur les chaînes

Longueur de la chaîne

Batch n'a pas de fonction intégrée pour obtenir la longueur d'une chaîne, mais nous pouvons utiliser une astuce ingénieuse :

@echo off
set string=Bonjour, le monde !
call :strLen string strlen
echo La longueur de "%string%" est %strlen%
pause
goto :eof

:strLen
setlocal enabledelayedexpansion
set "s=!%~1!"
set "len=0"
for %%N in (4096 2048 1024 512 256 128 64 32 16 8 4 2 1) do (
if "!s:~%%N,1!" neq "" (
set /a "len+=%%N"
set "s=!s:~%%N!"
)
)
endlocal & set %~2=%len%
goto :eof

Ce script définit une fonction :strLen qui calcule la longueur d'une chaîne. C'est un peu complexe, mais cela montre comment nous pouvons créer des outils puissants en Batch.

Conversion de casse

Batch n'a pas de conversion de casse intégrée, mais nous pouvons utiliser la commande for avec l'option /L pour y parvenir :

@echo off
set string=Bonjour, le monde !
call :toUpper string result
echo Majuscules : %result%
call :toLower string result
echo Minuscules : %result%
pause
goto :eof

:toUpper
for %%a in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do call set %2=%%%2:%%a=%%a%%%
goto :eof

:toLower
for %%a in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do call set %2=%%%2:%%A=%%a%%%
goto :eof

Ce script définit deux fonctions : :toUpper et :toLower pour la conversion de casse.

Conclusion

Félicitations ! Vous avez appena fait vos premiers pas dans le monde de la manipulation des chaînes de caractères dans les scripts Batch. Souvenez-vous, la pratique rend parfait, donc n'ayez pas peur d'expérimenter avec ces concepts. Essayez de combiner différentes techniques que nous avons apprises aujourd'hui pour créer vos propres scripts uniques.

Pour conclure, voici un tableau récapitulatif des opérations sur les chaînes que nous avons couvertes :

Opération Syntaxe Exemple
Afficher une chaîne echo chaîne echo Bonjour, le monde !
Stocker une chaîne set variable=chaîne set message=Bonjour
Concaténer set result=%string1% %string2% set fullName=%firstName% %lastName%
Entrée utilisateur set /p variable=prompt set /p name=Quel est votre nom ?
Sous-chaîne %variable:~start,length% %message:~0,5%
Remplacement %variable:ancien=nouveau% %phrase:renard=chat%

Continuez à coder, continuez à apprendre, et surtout, amusez-vous avec les scripts Batch !

Credits: Image by storyset