Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

test sur taille fichier en ligne de commande

2 réponses
Avatar
Emmanuel
bonjour,
Gràce à l'aide certains d'entre vous (JCB, Amandine, Ascadix..), on sait
comment faire afficher la taille d'un fichier donné en ligne de
commande, en exécutant :
for %I in (WCESLog.log) do echo %~zI

J'aimerais pouvoir tester la taille de ce fichier (pour l'effacer s'il
dépasse une certaine taille).
J'ai testé avec un IF, mais sans succès.
Comment puis-je procéder,
Merci d'avance,
Cordialement,
Emmanuel

2 réponses

Avatar
Lotre
Emmanuel wrote:
bonjour,

J'aimerais pouvoir tester la taille de ce fichier (pour l'effacer
s'il
dépasse une certaine taille).




Voici qq chose qui devrait marcher
Pour intégrer ça dans un script réel,
il faut bien sûr remplacer les ECHO
par ce qu'il convient de faire dans chaque cas
et ôter la pause ... ;o)

Bien cordialement,

HB

######################################
@ECHO OFF

:: Variables à modifier

SET FICH=TrucBidule.log
SET TMAX000000

:: ==================================== for %%I in (%FICH%) do Set TT=%%~zI

IF %TT% GTR %TMAX% (
ECHO La taille de %FICH% est excessive !
) ELSE (
ECHO La taille de %FICH% est acceptable ...
)
:: ==================================== pause
######################################
Avatar
Lotre
Re,

En fait ... FOR n'est pas indispensable...
puisque l'on dispose des mêmes possibilités
avec les pseudos variables %1, %2, etc ...


Solution alternative :

La "procédure" TEST attend deux arguments :
- Le chemin vers le fichier
- la taille maximale (en octets) ...

Elle doit être stockée en fin de fichier
[ ou bien (sans le label) dans un *.cmd à part
nommé TEST.CMD ]

Remarque :
Dans un *.cmd le nombre maximal est 2 147 483 647
( sinon c'est une chaîne)
Je n'ai pas testé avec des tailles dépassant ça
mais ça devrait aller...
#######################################
:: (...)
:: Autres tâches dans le script
:: (...)

CALL TEST Machin.log 4000000

:: (...)
:: Suite du script
:: (...)
:: dernière commande du script
GOTO :EOF

:: ======= La procédure de test ======= :TEST
IF %~z1 GTR %2 (
ECHO La taille de %1 est excessive
) ELSE (
echo La taille de %1 est acceptable
)
GOTO :EOF
:: ================================