test sur taille fichier en ligne de commande

Le
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
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Lotre
Le #20885561
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
######################################
Lotre
Le #20885661
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
:: ================================
Publicité
Poster une réponse
Anonyme