FAQ Windows Batch

FAQ Windows BatchConsultez toutes les FAQ
Nombre d'auteurs : 11, nombre de questions : 104, dernière mise à jour : 15 juin 2021
Sommaire→Fonctions utiles
Voici quelques fonctions pour traiter les chaînes de caractères :
@echo off & setlocal enabledelayedexpansion enableextensions
set "str=%*"
if not defined str (set /p str=Entrez une chaine: %)
echo.
call :length "%str%"
call :count "%str%"
call :reverse "%str%"
call :ucase "%str%"
call :2hexa "%str%"
set length
set [
set reverse
set ucase
set hexa
pause
endlocal & goto:eof
:length
for /f "tokens=1* delims=][" %%a in ('
"%comspec% /u /c echo:%~1|more|find /n /v """
') do Set /A "length=%%a-4"
goto:eof
:count
for /f %%: in ('
"%comspec% /u /c echo:%~1|more|sort"
') do Set /A "[%%:]+=1"
goto:eof
:reverse
for /f "tokens=1* delims=:" %%a in ('
"%comspec% /u /c echo:%~1|more|findstr /o ."
') do Set "reverse=%%b!reverse!"
goto:eof
:ucase
for /f "tokens=1* delims=µ" %%a in ('
"tree \µµµ%1|find ":\""
') do Set "ucase=%%b"
goto:eof
:2hexa
<nul>$asc$ set/p"=%~1"
for /l %%i in (1 1 %length%) do <nul>>$hex$ set/p"=µ"
for /f "skip=1 tokens=3" %%i in ('
fc /b $hex$ $asc$
') do Set "hexa=!hexa!%%i-"
set "hexa=%hexa:~0,-1%" & del $asc$ $hex$
goto:eoffonction Length : affiche le nombre de caractères saisie
fonction count : compte le nombre de lettre dans la chaine
fonction reverse : inverse la chaine
fonction ucase : transforme la chaîne en majuscule
fonction hexa : affiche la valeur hexadecimal de chaque lettre
Le code ci-dessous convertit la valeur hexadécimale 2F5 en décimal :
set hexa=2F5
set /a valeur=0x%hexa%
echo %valeur%

