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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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 ######################################
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
######################################
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
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 :: ================================
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
:: ================================
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 :: ================================