IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Renommer tous les dossiers avec le nom du fichier à l'intérieur


Sujet :

Scripts/Batch

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    dilletante
    Inscrit en
    Novembre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : dilletante

    Informations forums :
    Inscription : Novembre 2019
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Renommer tous les dossiers avec le nom du fichier à l'intérieur
    bonjour,

    débutant total, j'ai un dossier qui contient lui-même 3000+ dossierS dont le nom est du type "1234ABCDkj3gl7dj" (4 chiffres 4 lettres majuscules puis des chiffres et des lettres minuscules, je ne pense pas que cela importe mais vive la précision dans les demandes)

    Chaque dossier contient un (et un seul) fichier *******.mkv

    Je souhaite créer un fichier ****.bat qui renomme tous les dossier par le nom du fichier à l'intérieur (sans l'extension)

    Voilà où j'en suis

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @echo off
    dir /b /s /ad > folders_list.txt  // j obtiens la liste des dossiers
    ME MANQUE UNE BOUCLE QUI TOURNE POUR CHAQUE DOSSIER
    set $path= "VALEUR n de la boucle"
    for %%a in (%$path%) do set $Fichier=%%~na
    echo %$Fichier% >> files_list.txt
    PUIS UNE BOUCLE QUI FAIT
    for /f "delims=" %%i in ('type folders_list.txt') do echo %%i
    Ren "le répertoire de la ligne n de folders_list.txt" "le nom contenu dans la ligne n de files_list.txt"

    J'ai bien la liste des dossiers, je pense avoir le bon moyen pour créer la liste des noms des fichiers à l'intérieur
    par contre pour la suite je suis...complètement paumé

    suis-je sur le bon chemin ? on trouve plein de tutos pour renommer les fichiers en fonction des dossiers, mais pas l'inverse !

    Merci d'avance pour le temps consacré

    bye

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Comme ceci, il faut que tu remplace C:\MonDossierPrincipal par le chemin complet de ton dossier (qui contient lui-même 3000+ dossierS...)

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @echo off
    for /r "C:\MonDossierPrincipal" %%a in (*.mkv) do move /y "%%~dpa." "%%~dpa..\%%~na" >nul 2>nul
    pause
    Je suis un génie

    PS : Tu risque d'avoir un souci si dans des dossiers à renommer il y à d'autre sous-dossier à renommer, mais apparemment ce n'est pas le cas

  3. #3
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Sinon comme ceci pour gérer dossiers à renommer qui contiennent d'autre sous-dossier à renommer

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @echo off
    for /f "tokens=*" %%a in ('dir /a/b/s "C:\MonDossierPrincipal\*.mkv" ^|sort /r') do move /y "%%~dpa." "%%~dpa..\%%~na" >nul 2>nul
    pause

  4. #4
    Nouveau Candidat au Club
    Femme Profil pro
    dilletante
    Inscrit en
    Novembre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : dilletante

    Informations forums :
    Inscription : Novembre 2019
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par ericlm128 Voir le message
    Comme ceci, il faut que tu remplace C:\MonDossierPrincipal par le chemin complet de ton dossier (qui contient lui-même 3000+ dossierS...)

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @echo off
    for /r "C:\MonDossierPrincipal" %%a in (*.mkv) do move /y "%%~dpa." "%%~dpa..\%%~na" >nul 2>nul
    pause
    Je suis un génie

    PS : Tu risque d'avoir un souci si dans des dossiers à renommer il y à d'autre sous-dossier à renommer, mais apparemment ce n'est pas le cas
    J'ai compris la boucle mais après... pour moi effectivement ça tient du un peu du génie, google m'a permis de capter les "%%~dpa" ultra efficace vu qu'ils se basent sur "%%a"

    mais pourquoi avec "move" tu obtiens une fonction qui renomme ?

    En tous cas grand merci pour tes 2 réponses

  5. #5
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Aide de la commande move

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    C:\Users\...>move /?
    Déplace des fichiers et renomme des fichiers et répertoires.
    
    Pour déplacer un ou plusieurs fichiers*:
    MOVE [/Y | /-Y] [lecteur:][chemin]fichier1[,...] destination
    
    Pour renommer un répertoire:
    MOVE [/Y | /-Y] [lecteur:][chemin]répert1 répertoire2
    
      [lecteur:][chemin]fichier1 Spécifie l’emplacement et le nom du ou des
                                 fichiers que vous voulez déplacer.
      destination                Spécifie le nouvel emplacement du fichier.
                                 Destination peut être une lettre de lecteur et
                                 deux-points (:), un nom de répertoire, ou une
                                 combinaison. Si vous déplacez un seul fichier,
                                 vous pouvez aussi inclure un nom de fichier si
                                 vous voulez renommer le fichier en le déplaçant.
      [lecteur:][chemin]répert1  Spécifie le répertoire que vous voulez renommer.
      répert2                    Spécifie le nouveau nom du répertoire.
    
      /Y                         Supprime la demande de confirmation de
                                 remplacement de fichiers de destination existants.
      /-Y                        Provoque la demande de confirmation de
                                 remplacement de fichiers de destination existants.
    
    L’option /Y peut être présente dans la variable d’environnement COPYCMD.
    Outrepassez ceci en utilisant /-Y dans la ligne de commandes. Par défaut, une
    demande de confirmation apparaît sauf si la commande MOVE est exécutée depuis
    un script de commandes.

  6. #6
    Nouveau Candidat au Club
    Femme Profil pro
    dilletante
    Inscrit en
    Novembre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : dilletante

    Informations forums :
    Inscription : Novembre 2019
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Il suffisait de faire /?

    j'aurais du commencer par là au lieu de ça j'ai googler la commande et pas vu la partie renommage...

    Grand merci j'ai à la fois résolu un problème et appris plein de choses

    J'abuse jusqu'au bout mais est-ce que cela te parait possible de réaliser la même chose avec des archives (****.rar) à la place des dossiers ?

    Ces archives contiennent un mkv et un txt, le but serait de les renommer avec le nom du mkv...Voilà voilà

    J'ai cherché un peu et pas trouvé le début d'un indice qui prouverait que c'est possible mais on ne sait jamais, je demande au pro !

    En tous cas je te souhaite une bonne continuation vu que je t'ai vu un peu partout aider sur le fofo, chapeau bas.

  7. #7
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    mais est-ce que cela te parait possible de réaliser la même chose avec des archives (****.rar) à la place des dossiers
    Il faudrait réussir à lire le contenu de l'archive RAR, en ligne de commande, pour pouvoir renommer le fichier.
    Il faut un utilitaire tiers, exemple :
    https://cects.com/using-the-winrar-c...?cn-reloaded=1
    https://www.winrar-france.fr/winrar_...LineSyntax.htm

  8. #8
    Nouveau Candidat au Club
    Femme Profil pro
    dilletante
    Inscrit en
    Novembre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : dilletante

    Informations forums :
    Inscription : Novembre 2019
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par ericlm128 Voir le message
    Il faudrait réussir à lire le contenu de l'archive RAR, en ligne de commande, pour pouvoir renommer le fichier.
    Il faut un utilitaire tiers, exemple :
    https://cects.com/using-the-winrar-c...?cn-reloaded=1
    https://www.winrar-france.fr/winrar_...LineSyntax.htm

    J'ai trouvé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     rar l[t[a] ,b] 2002ETRE79309srm.rar *.mkv
    comme je commence à comprendre des trucs j'ai ajouté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     rar l[t[a] ,b] 2002ETRE79309srm.rar *.mkv >name.txt
    et j'ai obtenu un fichier name.txt dont le contenu est le suivant
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    RAR 5.70 beta 1 x64   Copyright (c) 1993-2019 Alexander Roshal   3 Feb 2019
    Registered to ANONYME
    
    Archive: 2002ETRE79309srm.rar
    Details: RAR 4
    
     Attributes      Size     Date    Time   Name
    ----------- ---------  ---------- -----  ----
     -rwxr-xr-x 974425057  2017-03-01 17:12  2002ETRE79309srm\Òtre et Avoir (2002) 720p VOST by ZeraW [MKV Corp].mkv
    ----------- ---------  ---------- -----  ----
                974425057                    1

    il doit donc y avoir moyen de faire une boucle pour chaque rar et de créer le fichier, extraire la string entre le "\" et le ".mkv" et roulez jeunesse...

    je m'y pencherai peut-être mais ça me parait un peu chaud pour moi... Merci pour les sources d'info

    *edit* ajout de "*.mkv" pour ne s'intéresser qu'au fichier qui nous concerne

  9. #9
    Nouveau Candidat au Club
    Femme Profil pro
    dilletante
    Inscrit en
    Novembre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : dilletante

    Informations forums :
    Inscription : Novembre 2019
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par hastyle Voir le message
    J'ai trouvé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     rar l[t[a] ,b] 2002ETRE79309srm.rar *.mkv
    bonjour, j'ai finalement le code complet qui fait l'affaire, je partage au cas ou cela puisse en aider d'autres


    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @echo off
    pause
    for /f %%a in ('dir /b "C:\MONREPERTOIREDERAR"') do ( rar l[t[a],b] C:\MONREPERTOIREDERAR \%%a *.mkv > C:\MONREPERTOIREDERAR\"%%a".txt)

    Cela crée pour chaque archive un fichier texte nommé comme l'archive et qui contient le nom du film mkv contenu, ce qui permet dans windows de faire une recherche sur le nom du film pour trouver la bonne archive (!)

    Merci pour ton aide, sujet clos !

Discussions similaires

  1. [Batch] Renommer tous les sous-dossiers
    Par Al PiGiNo dans le forum Scripts/Batch
    Réponses: 10
    Dernier message: 05/12/2014, 15h00
  2. Renommer tous les fichiers d'un dossier
    Par minipopov dans le forum Linux
    Réponses: 2
    Dernier message: 26/05/2012, 03h11
  3. Ouvrir dossier avec le nom du fichier
    Par lefty972 dans le forum C#
    Réponses: 2
    Dernier message: 19/08/2011, 01h52
  4. Réponses: 7
    Dernier message: 16/09/2009, 09h34
  5. Réponses: 9
    Dernier message: 16/01/2009, 15h55

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