Astuce convertir DEC to HEX & danseur '.bat'

librequetucrois -  
 librequetucrois -
Bonjour à tous ; module (une partie d'un tout ...) :
-
(( POC Download avec Hash+Taille => GégènBinaire | CommentCaMarche :
http://www.commentcamarche.net/forum/affich-24282430-poc-download-avec-hash-taille-gegenbinaire ))
-
ComptConvertDECtoHEXdanse20120203-21h45m00-3188octectsCRC32=DD85A67F.bat
-
3,11 Ko (3 188 octets)
-
CRC32: DD85A67F
MD5: 851064615D3E7272859752CB1C8B7ABA
SHA-1: EBD81895CD14300B0473A36E68BA5C523358F68B
SHA-256: B4A109B3B66C2B4284BCDE96B61D762ECA4D295E6BA9789E076172A4DE24B115
-
@echo off
setlocal
cls
:
set varadd=0
set varnombre=0
set vardec=0
:
set danse=1
set damier=1
:
:astc
rem (direct = pas dans un bat) : %comspec% /c exit /b 255 & set ; | find "=ExitCode=" > test.tmp && set /P vartest=<test.tmp && echo. && echo %vartest:~16,2% && echo. && pause && exit /b
:
%comspec% /c exit /b %vardec%
:
set ; | find "=ExitCode=" > test.tmp
:
set /P vartest=<test.tmp
:
rem mode con:lines=25 ou cls = quasi pareil sauf pour utiliser les bords pour jouer (anim+escalier)
mode con:lines=25
:
echo Start test conversion dec to hex 0 to 255 = 00 to FF ...
echo.
echo Demo: Afficher un compteur hexa sans sauts de lignes avec echo
echo.
echo Ce n'est pas du tout parfait (clignotage) mais cela fonctionne
echo.
echo Astuce = mode con:lines=25 (25 peut venir depuis une variable)
echo.
:
:danse1
if not %danse%==1 goto danse2
echo       o
echo       (\  danse  with  me  8-D)
echo       /\
set danse=2
goto dansefincycle
:
:danse2
if not %danse%==2 goto danse3
echo         o
echo        =   danse  with  me  8-D)
echo       /\
set danse=3
goto dansefincycle
:
:danse3
if not %danse%==3 goto danse4
echo        \o/
echo         )  danse  with  me  8-D)
echo        /\
set danse=4
goto dansefincycle
:
:danse4
if not %danse%==4 goto danse5
echo       o
echo       )=   danse  with  me  8-D)
echo       /\
set danse=5
goto dansefincycle
:
:danse5
if not %danse%==5 goto danse6
echo       o
echo       (\ danse  with  me  8,-D)
echo       /\
set danse=6
goto dansefincycle
:
:danse6
if not %danse%==6 goto danse7
echo         o
echo        =   danse  with  me  8,-D)
echo       /\
set danse=7
goto dansefincycle
:
:danse7
if not %danse%==7 goto danse8
echo        \o/
echo         )  danse  with  me  8-D)
echo        /\
set danse=8
goto dansefincycle
:
:danse8
if not %danse%==8 goto dansefincycle
echo       o
echo       )=   danse  with  me  8-D)
echo       /\
set danse=1
:dansefincycle
:
echo.
:
if %damier%==2 (goto damier2)
echo ÜßÜßÜßÜßÜßÜßÜßÜß
echo ÜßÜßÜßÜßÜßÜßÜßÜß
if not %danse%==7 goto dansedamier1
echo ÜßÜßÜßÜßÜßÜßÜßÜß LE DAMIER CHANGE DE FORME 8;=D))
:dansedamier1
if %danse%==7 goto finsouriredamier1
echo ÜßÜßÜßÜßÜßÜßÜßÜß LE DAMIER CHANGE DE FORME 8=))
:finsouriredamier1
echo ÜßÜßÜßÜßÜßÜßÜßÜß
echo ÜßÜßÜßÜßÜßÜßÜßÜß
set damier=2
goto findamier1
:damier2
echo ßÜßÜßÜßÜßÜßÜßÜßÜ
echo ßÜßÜßÜßÜßÜßÜßÜßÜ
if not %danse%==7 goto dansedamier2
echo ßÜßÜßÜßÜßÜßÜßÜßÜ LE DAMIER CHANGE DE FORME 8;=D))
:dansedamier2
if %danse%==7 goto finsouriredamier2
echo ßÜßÜßÜßÜßÜßÜßÜßÜ LE DAMIER CHANGE DE FORME 8=))
:finsouriredamier2
echo ßÜßÜßÜßÜßÜßÜßÜßÜ
echo ßÜßÜßÜßÜßÜßÜßÜßÜ
set damier=1
:findamier1
echo.
:
echo compteur DEC (base 10) %varnombre%
echo compteur HEX (base 16) %vartest:~16,2%
:
set /a varadd=%varadd%+(0x01)
set varnombre=%varadd%
set /a vardec=%vardec%+1
:
if %vardec%==255 goto eof
rem if /i %varnombre% geq 20 goto eof
:
echo.
echo Sortie quand le compteur affichera 255
timeout /T 1 > nul
goto astc

:eof
echo.
echo sortie du test et supression du fichier temporaire "test.tmp"
del /p test.tmp
pause
endlocal
exit


ÉDIT : 254 et FE ; pas grave ... mettez 256 à la place de 255 dans if ... them.
-
merci à vous lire ; juste 255 secondes (un peu plus ou moins selon vitesse du pc)

< config >Windows 7 / Firefox 3.6.26< / config >

2 réponses

  1. librequetucrois
     
    slt re

    un compteur hexa avec l'aide de cette page :

    http://www.ericphelps.com/batch/samples/addition.txt

    note : retirez " A B C D E F" pour compter en décimal ...

    AddiHexaCount465o20120210-033652UTC+0100CRC32=63728810.bat

    465 octets (465 octets)

    CRC32: 63728810
    MD5: 8F532851A3948390DC4A4435F2A9C6C6
    SHA-1: EE1906849E4198B6B33B165E54D3484EC057ABEA
    SHA-256: B62EA9E769DAAF3A88178614C6054EEEE7EE15173BE877570CA14C53FE086A60

    @echo off
    if [%1]==[] goto NONE
    if [%2]==[] goto ONE
    if [%3]==[] goto TWO
    goto THREE
    
    :NONE
    for %%x in (0 1 2 3 4 5 6 7 8 9 A B C D E F) do call %0 %%x
    goto DONE
    
    :ONE
    for %%x in (0 1 2 3 4 5 6 7 8 9 A B C D E F) do call %0 %1 %%x
    goto DONE
    
    :TWO
    for %%x in (0 1 2 3 4 5 6 7 8 9 A B C D E F) do call %0 %1 %2 %%x
    goto DONE
    
    :THREE
    goto :PROCESS %1%2%3
    goto DONE
    
    :PROCESS
    echo test = "%1" - "%2" - "%3"
    timeout /t 1 > nul
    exit /b
    
    :DONE
    


    svp comment obtenir les secondes pour la modification d'un fichier ?

    FileSize2152o20120210-023615UTC+1000CRC32=AE31CBFE.bat

    2,10 Ko (2 152 octets)

    CRC32: AE31CBFE
    MD5: FC8C5CA9D1079B7A0B6C675EA30747C7
    SHA-1: 7232C7E603DF66660AF03C64D77F0D3BF78DF90F
    SHA-256: 01122EACFDE5A18DEC3C260DF02DE4AA47FE266E521578B7DEF68FC0B493B988

    @echo off
    setlocal
    cls
    
    if not exist "%USERPROFILE%\Desktop\desktop.ini" (
    echo Le fichier ci-dessous n'existe pas ; passage a la suite du batch !
    echo.
    echo "%USERPROFILE%\Desktop\desktop.ini"
    goto suite
    )
    call :size_file "%USERPROFILE%\Desktop\desktop.ini"
    echo "%USERPROFILE%\Desktop\desktop.ini"
    rem if %size%==0 echo file empty>>fichier_de_log.txt
    echo Taille : %size% octets.
    goto suite
    
    :size_file
    set size=%~z1
    goto retour111
    :retour111
    exit /b
    
    :suite
    echo.
    pause
    cls
    rem endlocal
    rem exit /b
    
    setlocal enableextensions enabledelayedexpansion
    
    for %%f in (*.*) do (
    if !varCountFiles! EQU 0 set vartitre=Start
    if !varCountFiles! GEQ 1 set vartitre=Continue
    echo !vartitre! check chemin, name, size, date ^& time file^(s^) inside folder ^(*^.*^) : 
    echo.
      set /a varCountFiles=!varCountFiles!+1
      set FILE=%%~ff
      set varSizeFile=%%~zf
      set TIMESTAMP=%%~tf
      call :processFile
      echo.
    pause
    cls
    )
    
    echo fin de affichage date et heure
    pause
    goto end
    
    :processFile
    set FDD=%TIMESTAMP:~0,2%
    set FMM=%TIMESTAMP:~3,2%
    set FYY=%TIMESTAMP:~6,4%
    set FHH=%TIMESTAMP:~11,2%
    set FNN=%TIMESTAMP:~14,2%
    if %varCountFiles% geq 10000 if %varCountFiles% leq 99999 echo Compteur : %varCountFiles%
    if %varCountFiles% geq 1000 if %varCountFiles% leq 9999 echo Compteur : 0%varCountFiles%
    if %varCountFiles% geq 100 if %varCountFiles% leq 999 echo Compteur : 00%varCountFiles%
    if %varCountFiles% geq 10 if %varCountFiles% leq 99 echo Compteur : 000%varCountFiles%
    if %varCountFiles% geq 0 if %varCountFiles% leq 9 echo Compteur : 0000%varCountFiles%
    echo Nom et chemin complet du fichier en cours de traitement :
    echo "%FILE%"
    echo Date et heure de 'modification du fichier' V1 : %TIMESTAMP%
    echo Date et heure de 'modification du fichier' V2 : %FYY%%FMM%%FDD%-%FHH%%FNN%
    echo Annee..de modification du fichier : "%FYY%"
    echo Mois...de modification du fichier : "%FMM%"
    echo Jour...de modification du fichier : "%FDD%"
    echo Heure..de modification du fichier : "%FHH%"
    echo Minute.de modification du fichier : "%FNN%"
    echo Taille du fichier : %varSizeFile% octets.
    
    :end
    endlocal&&goto :eof


    merci par avance
    0
  2. librequetucrois
     
    slt re ; astuce et une autre question :

    Question (PRO) : svp, comment afficher les deux compteurs ? merci bien.

    @echo off
    cls
    
    echo ==================================================================
    echo Compteur DECIMAL or HEXADECIMAL (chiffres en moins pour la demo) :
    echo ==================================================================
    
    echo.
    
    echo Control mode counter HEX or DEC :
    echo VALEUR %%1 = "%1"
    echo Control counter :
    echo VALEUR %%2 = "%2"
    echo VALEUR %%3 = "%3"
    echo VALEUR %%4 = "%4"
    echo.
    rem echo Control mode counter HEX or DEC :
    rem echo VALEUR %%5 = "%5"
    rem echo Control counter :
    rem echo VALEUR %%6 = "%6"
    rem echo VALEUR %%7 = "%7"
    rem echo VALEUR %%8 = "%8"
    
    rem rem above goto or reverse the 2 lines or open bat with setting
    if /i not [%varsettingcount%]==[] goto passbridge
    if /i [%1]==[HEX] goto passbridge
    if /i [%1]==[DEC] goto passbridge
    :responsenogood
    cls
    echo ==================================================================
    echo Compteur DECIMAL or HEXADECIMAL (chiffres en moins pour la demo) :
    echo ==================================================================
    echo.
    echo info SETTING = %0 CountHEX or CountDEC
    echo.
    set /p varsettingcount= 1 (or counthex) ^= CountHEX / 2 (or countdec) ^= CountDEC / Q ^= quit ? 
    cls
    if /i [%varsettingcount%]==[Q] goto DONEfinal
    if /i [%varsettingcount%]==[1] goto firstbootHEX
    if /i [%varsettingcount%]==[2] goto firstbootDEC
    if /i [%varsettingcount%]==[CountHEX] goto firstbootHEX
    if /i [%varsettingcount%]==[CountDEC] goto firstbootDEC
    if /i [%1]==[CountHEX] goto firstbootHEX
    if /i [%1]==[CountDEC] goto firstbootDEC
    goto responsenogood
    :passbridge
    
    if /i [%1]==[DEC] goto counterDEC
    
    rem ===================================
    :counterHEX
    if [%1]==[] goto firstbootHEX
    rem ===================================
    if [%2]==[DEC] goto NONEHEX
    if [%3]==[DEC] goto ONEHEX
    if [%4]==[DEC] goto TWOHEX
    goto usecallfunction
    rem ===================================
    
    :firstbootHEX
    :NONEHEX
    for %%x in (A B C D E F) do call %0 HEX %%x DEC %2 %3 %4
    goto DONEfinal
    
    :ONEHEX
    for %%x in (A B C D E F) do call %0 HEX %2 %%x DEC %2 %3 %4
    goto DONEfinal
    
    :TWOHEX
    for %%x in (A B C D E F) do call %0 HEX %2 %3 %%x DEC %2 %3 %4
    goto DONEfinal
    
    rem ===================================
    :counterDEC
    if [%1]==[] goto firstbootDEC
    rem ===================================
    if [%2]==[HEX] goto NONEDEC
    if [%3]==[HEX] goto ONEDEC
    if [%4]==[HEX] goto TWODEC
    goto usecallfunction
    rem ===================================
    
    :firstbootDEC
    :NONEDEC
    for %%z in (0 1 2 3 4) do call %0 DEC %%z HEX %2 %3 %4
    goto DONEfinal
    
    :ONEDEC
    for %%z in (0 1 2 3 4) do call %0 DEC %2 %%z HEX %2 %3 %4
    goto DONEfinal
    
    :TWODEC
    for %%z in (0 1 2 3 4) do call %0 DEC %2 %3 %%z HEX %2 %3 %4
    goto DONEfinal
    
    rem ===================================
    :usecallfunction
    call :PROCESSHEXDEC %1 %2 %3 %4 %5 %6 %7 %8
    if [%2]==[4] echo.
    if [%2]==[4] echo Retour au menu (fin) ...
    if [%2]==[4] echo.
    if [%2]==[4] pause
    if [%2]==[4] goto responsenogood
    if [%2]==[F] echo.
    if [%2]==[F] echo Retour au menu (fin) ...
    if [%2]==[F] echo.
    if [%2]==[F] pause
    if [%2]==[F] goto responsenogood
    goto DONEfinal
    rem ===================================
    
    :PROCESSHEXDEC
    echo.
    echo Test ("%1") = "%2" - "%3" - "%4"
    rem echo Test ("%5") = "%6" - "%7" - "%8"
    timeout /t 1 > nul
    goto DONEfinal
    
    :DONEfinal
    exit /B


    merci par avance
    0