Windows Rajouter nom dossier parent a fichier

Résolu/Fermé
JulienD63 Messages postés 4 Date d'inscription vendredi 24 avril 2009 Statut Membre Dernière intervention 25 avril 2009 - 24 avril 2009 à 21:57
JulienD63 Messages postés 4 Date d'inscription vendredi 24 avril 2009 Statut Membre Dernière intervention 25 avril 2009 - 25 avril 2009 à 11:20
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
A voir également:

8 réponses

BadBoy3 Messages postés 108 Date d'inscription dimanche 7 décembre 2008 Statut Membre Dernière intervention 7 janvier 2011 15
25 avril 2009 à 00:18
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
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
25 avril 2009 à 08:47
hello
et un fichier .bat en DOS ?
0
JulienD63 Messages postés 4 Date d'inscription vendredi 24 avril 2009 Statut Membre Dernière intervention 25 avril 2009
25 avril 2009 à 10:23
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
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
25 avril 2009 à 10:41
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JulienD63 Messages postés 4 Date d'inscription vendredi 24 avril 2009 Statut Membre Dernière intervention 25 avril 2009
25 avril 2009 à 10:54
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
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
25 avril 2009 à 11:14
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
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
25 avril 2009 à 11:15
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
JulienD63 Messages postés 4 Date d'inscription vendredi 24 avril 2009 Statut Membre Dernière intervention 25 avril 2009
25 avril 2009 à 11:20
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