Astuce convertir DEC to HEX & danseur '.bat'

Fermé
librequetucrois - Modifié par librequetucrois le 3/02/2012 à 22:09
 librequetucrois - 10 févr. 2012 à 15:10
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 >
A voir également:

2 réponses

librequetucrois
10 févr. 2012 à 03:49
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
librequetucrois
10 févr. 2012 à 15:10
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