FAQ Windows Batch
FAQ Windows BatchConsultez toutes les FAQ
Nombre d'auteurs : 11, nombre de questions : 104, dernière mise à jour : 15 juin 2021
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
:eof
fonction 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%