Verifier la presence d'un repertoire et de sa taille mini

Melanie7 -  
 KarineBreizh -
Bonjour,

Je dois concevoir un batch qui verifie la presence d'un repertoire à la date du jour et sa taille qui doit etre de 100 Ko mini.

Pour la presence du repertoire, j'ai fait ceci :

@echo off
set fdate=%date:~6,4%%date:~3,2%%date:~0,2%
set cible=%fdate%_05-00
if exist C:\%cible% goto ENVOIMAIL


Par contre, c'est pour verifier sa taille que je n'arrive à ecrire. Je pense qu'il faut utiliser le '~~zcible' mais je ne vois pas comment l'inclure.

Merci pour votre aide

2 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    ~z retourne la taille d'un fichier, pas d'un répertoire
    ceci calcule la somme de la taille de tout les fichiers
    @echo off
    setlocal enabledelayedexpansion
    set c=0
    for %%a in (*.*) do set /a c+=%%~za
    echo !c!
    0
  2. Melanie7
     
    Merci pour ta réponse Dub.

    J'ai fait un test avec mon repertoire C:\temp mais la valeur qui ressort n'est pas la même que la taille indiquée par Windows.
    Le script renvoie 98304 et Windows 820 Mo....

    Est ce normal ?

    Merci
    0
    1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      le script ne traite pas les sous-répertoires, je vais modifier
      essayer
      @echo off
      setlocal enabledelayedexpansion
      set c=0
      for /R %%a in (*.*) do set /a c+=%%~za
      echo !c!
      0
    2. Melanie7 > dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Merci dub.
      Quand je l'execute, "il manque un operande" revient en boucle....
      0
    3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      montre ton script
      0
    4. Melanie7 > dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention  
       
      @echo off
      setlocal enabledelayedexpansion
      set c=0
      for /R %%a in (C:\Temp) do set /a c+=%%~za
      echo !c!
      0
    5. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      changer la ligne for
      for /R C:\Temp  %%a in (*.*) do set /a c+=%%~za 
      0