1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    avril 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : avril 2017
    Messages : 2
    Points : 1
    Points
    1

    Par défaut Sous CMD comment supprimer dans un répertoire et ses sous-répertoires tous les fichiers à taille=O

    J'utilise un outil de copie rapide pour alimenter une clé usb à partir d'un répertoire et tous ses sous-répertoires.
    L'outil crée les noms de fichiers avant la copie proprement dite, et lorsque la place vient à manquer sur la clé, ces fichiers demeurent avec une taille à zéro.
    J'effectue des fusions à chaque transfert de données sur la clé et je choisis de garder les fichiers existants pour n'alimenter que les nouveaux fichiers, (ce qui est plus évidemment rapide que de tout écraser sur une clé de 64 Go !)
    Aussi, comme l'outil ne permet pas d'écraser seulement les fichiers de taille nulle, je voudrais éliminer ces fichiers de la clé pour qu'à la nouvelle fusion, ils soient recopiés.
    Seulement, je butte sur les commandes For /F, car celles-ci parcourent les sous-répertoires à partir d'un répertoire parent préalablement fixé, ce qui aboutit à des noms de répertoires trop longs (pour ce pauvre vieux DOS).
    J'en viens à me demander si c'est possible en fichier de commande, (sans déplacer des montagnes... de code), ou si ce serait plutôt réalisable en VB ou avec un shell Unix (comme il en existe d'adaptés à Windows), mais là,c'est moi qui cale...
    J'ai adapté ce bout de batch en utilisant une commande trouvée sur internet :
    for /f "tokens=1*" %i in ('forfiles /p "%cd%" /c "cmd /c echo @fsize @path"') do if /i %~zj equ 0 echo %j>> test.txti equ 0 echo %j>> sortie.txt
    mais il inscrit sur le fichier sortie.txt les répertoires qui ont un fichier vide, et non pas les seuls fichiers de taille nulle qu'ils contiennent !

  2. #2
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    juin 2009
    Messages
    3 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : juin 2009
    Messages : 3 307
    Points : 7 994
    Points
    7 994

    Par défaut


    Peut-être une piste ici
    Zero_bytes_Del.bat
    Code BAT : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @echo off
    for /r %%F in (*) do if %%~zF==0 del "%%F"
    pause

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    avril 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : avril 2017
    Messages : 2
    Points : 1
    Points
    1

    Par défaut

    Citation Envoyé par hackoofr Voir le message

    Peut-être une piste ici
    Zero_bytes_Del.bat
    Code BAT : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @echo off
    for /r %%F in (*) do if %%~zF==0 del "%%F"
    pause
    J'ai testé sous cmd: for /r %F in (*) do if %~zF==0 echo "%F" >> test.txt
    L'évaluation de la taille ne fonctionne pas et restitue un vide. Heureusement que j'avais testé avec echo à la place de delete, car j'obtiens un truc bizarre à chaque occurrence, mon répertoire de test étant C:\Users\Untel:
    C:\Users\Untel>if == 0 echo "C:\Users\Untel\AppData\Local\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data
    \Application Data\Application Data\Application Data\Application Data\Application Data\Google\Chrome\User Data\Default\Cache\f_0046f5" 1>>test.txt

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/04/2016, 10h14
  2. Réponses: 4
    Dernier message: 13/05/2015, 10h33
  3. Réponses: 21
    Dernier message: 03/11/2014, 17h43
  4. Réponses: 5
    Dernier message: 25/06/2007, 23h25
  5. Réponses: 4
    Dernier message: 24/09/2004, 10h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo