Windows Rajouter nom dossier parent a fichier

Résolu
JulienD63 Messages postés 4 Statut Membre -  
JulienD63 Messages postés 4 Statut Membre -
Bonjour,

Faute d'avoir trouvé oú me présenter, je vais commencer tout de suite:
Je suis ingé en génie industriel, mais j'aime beacoup l'informatique.

J'ai déjá fait du C et C++ (petites applications gentilles), et travaille réguliérement en VBa (non c'est bon pas de remarques!!!).

Mais aujourd'hui, j'ai un probléme que je n'arrive pas á résoudre:
je souhaites tranformer le nom de fichiers dans un dossier en rajoutant au début le nom du dossier parent.
Par exemple, si j'ai un fichier "Essai.pdf" dans le dossier "Program", je voudrais renommer automatiquement le fichier en "Program - Essai.pdf".

Voici donc mon probléme: Quel langage utiliser, sachant que je ne peux pas programmer sur un logiciel (je ne souhaites pas installer de compilateur...)? Biensúr, un petit lien vers introduction au langage de programmation serait le bienvenue (mais je peux trouver moi-meme donc pas indispensable).
Quelques pistes pour programmer cette petite application.

Dans l'idée j'imagine une sorte de ChDir avec changement du nom du fichier (du genre Dossier parent & " - " & nom du fichier) pour chaque objet différent d'un dossier (on ne rentre pas dans les sous-dossier).

Pour finir, je tiens á remercier l'ensemble du staf et des membres pour leur source de donnée infinie de résolution de problémes qui me sortent de bien des soucis!

PS: Désolé pour les fautes d'accent j'utilise un clavier QWERTY...

Merci
Configuration: Windows XP
Internet Explorer 7.0

8 réponses

  1. BadBoy3 Messages postés 128 Statut Membre 15
     
    Bonsoir
    j'ai pas bien compris

    sachant que je ne peux pas programmer sur un logiciel (je ne souhaites pas installer de compilateur...)? Biensúr, un petit lien vers introduction au langage de programmation serait le bienvenue

    bon tu peut utiliser VB.Net (2005) de préférence,ba pour le code j'ai compris que tu ve le programmer tt seul ( c assez dificile pour un débutant en programation)

    mai juste reponde moi si tu as instaler VB.NET pour te donne le code qui fai ca!!!

    crdlmnt
    0
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    et un fichier .bat en DOS ?
    0
  3. JulienD63 Messages postés 4 Statut Membre
     
    Bonjour et merci pour vos réponses.

    Petit éclaircissement, qui m'a l air nécessaire! Je ne suis pas admin sur mon ordi donc pas d'installation possible (pas possible, et pas le droit...).
    Pour moi, le mieux aurait donc été de tout faire en VBa, car Excel, tout le monde l'a, mais il me semble que ce n'est pas réalisable.

    Un fichiet .bat pourrait en revanche beaucoup m'ntéressé, mais dans ce cas je vais avoir besoin d'aide car je ne connais pas la phylo de DOS, ni méme comment créer un .bat (fichier text dont on modifie l extension?).

    Je tiens á préciser que je suis quand méme loin d'étre débutant en programmation, c'est juste que quand on ne connait pas un langage, on ne va pas inventer les instructions et la phylo!

    Merci
    0
  4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    le fichier de commande suivant devrait le faire. faire une sauvegarde et quelques tests, bien sur

    @echo off
    rem
    rem ## on récupère le dernier champ de la variable %CD%, le dossier courant, dans la variable dir
    rem
    for /F "delims=\\" %%I in ("%CD%") do (
    set dir=%%~nI
    rem
    rem ## on renome tous les fichiers, avec des " à cause des espaces dans les noms
    rem
    for %%n in (*.*) do ren "%%n" "%dir% - %%n")
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. JulienD63 Messages postés 4 Statut Membre
     
    Merci.

    Pouvez vous m'expliquer plus en détail le code svp?
    @echo off => pas d affichage?
    Ensuite il y a une boucle for mais avec quels parametres ( "Pour chaque ??? dans le dossier courant changer le nom du fichier (set dir) en ???)
    La derniere ligne "Pour chaque ??caracteres spéciaux??? remplacer ce caractére spécial par " - ".

    A quoi correspond le %%n, le %dir%?

    Merci
    0
  7. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    en DOS, il faut utiliser, pour les variables, % interactivement,et %% dans un fichier de commande
    une variable de l'environnement s'utilise avec %nom%, une variable d'un FOR avec %n ou %%n

    la variable CD contient le chemin complet
    $ echo %CD%
    C:\Documents and Settings\xxxx\Mes documents\src\zzz

    le séparateur entre les noms de dossiers est \
    $ for /F "delims=\\" %I in ("%CD%") do echo %~nI
    zzz

    %~nI Développe %I en nom de fichier seulement, voir dans l'Aide Windows

    on garde le nom dans dir
    set dir=%%~nI

    et on boucle sur tous les fichiers (*.*) en exécutant un ren (renommer), %%n prenant le nom de chaque fichier
    for %%n in (*.*) do ren "%%n" "%dir% - %%n")
    0
  8. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour tous,
    Tout a fait faisable en VBA...
    Sub RenommerFichier(CheminEtFichier)
    'le paramètre doit être du type
    'C:\Répertoir1\Répertoir2\NomFichier.ext
    Dim TB
    Dim NomDest As String
        TB = Split(CheminEtFichier, "\")
        NomDest = Left(CheminEtFichier, Len(CheminEtFichier) - Len(TB(UBound(TB))))
        NomDest = NomDest & TB(UBound(TB) - 1) & " - " & TB(UBound(TB))
    'retour =
    'C:\Répertoir1\Répertoir2\Répertoir2 - NomFichier.ext
        'Renomme le fichier
        Name CheminEtFichier As NomDest
    End Sub

    Si nécessaire, possibilité de changer tout un répertoire d'un seul coup.
    A+
    0
  9. JulienD63 Messages postés 4 Statut Membre
     
    Super!

    Merci á vous deux!

    Dubcek, promis je me met au DOS car ca a l air faisable comparé a du C, il faut par contre que je travaille les variables et les instructions.

    Lermitte222, je ne connaissais pas la fonction Name comme tu l'as utilisé!

    Bon je vais travailler sur tout ca, mais pour le coup, je pense que je peux annoncer un grand RESOLU!!

    Encore merci

    Cordialement,
    0