Renommer un dossier
Jordi.D
Messages postés
51
Date d'inscription
Statut
Membre
Dernière intervention
-
Jordi.D Messages postés 51 Date d'inscription Statut Membre Dernière intervention -
Jordi.D Messages postés 51 Date d'inscription Statut Membre Dernière intervention -
Salut à tous
J'ai un petit problème j'ai un dossiers XXX200 qui est présent dans plusieurs dossiers Dossier201 dossier202 etc..
je voudrais que le dossier xxx200 prennent la valeur de chaque Dossiers
par exemple : Dossiers206 XXX206 etc
J'ai un petit problème j'ai un dossiers XXX200 qui est présent dans plusieurs dossiers Dossier201 dossier202 etc..
je voudrais que le dossier xxx200 prennent la valeur de chaque Dossiers
par exemple : Dossiers206 XXX206 etc
A voir également:
- Renommer un dossier
- Dossier appdata - Guide
- Renommer des fichiers en masse - Guide
- Impossible de supprimer un dossier - Guide
- Mettre un mot de passe sur un dossier - Guide
- Renommer iphone - Guide
j'ai ce code
Option Explicit ' <=== Déclaration très recommandée pour éviter toute ambiguïté
Const ForReading = 1, ForWriting = 2
Dim fso, fich, Ret, FileName, Ligne, objFolder, SubFold, F
Dim NameFolder, NewValue, nbrReplacement
nbrReplacement = 1
'FileName = ".\Test205\Test.reg" ' Changement de stratégie : FileName doit être lu à partir du dossier qui le contient
Set fso = CreateObject("Scripting.FileSystemObject")
Set objFolder = fso.GetFolder(".") ' Le point indique le dossier en cours, où on place le script(Changement.vbs)
' Pour ton cas, il faut placer le script dans le dossier "Copier"
For Each SubFold In objFolder.SubFolders
' Si le dossier du fichier .reg est de forme BAMxxx, mets "bam" à la place de "test" dans la ligne suivante
If InStr(1, LCase(SubFold.Name), "test", vbTextCompare) > 0 Then
For Each F In SubFold.Files
If LCase(fso.GetExtensionName(F.Name)) = "reg" Then
FileName = F.Path
NameFolder = fso.GetFolder(fso.GetFile(FileName).ParentFolder).Name
NewValue = Quote("Name") & "=" & Quote(NameFolder) ' Nouvelle ligne à écrire
Set fich = fso.OpenTextFile(FileName, ForReading, False)
Do While Not Fich.AtEndOfStream
Ligne = Trim(Fich.ReadLine)
If InStr(1, LCase(Ligne),Quote("name") & "=" & Chr(34) & "test", vbTextCompare) > 0 _
And InStr(1, Ligne, NameFolder, vbTextCompare) = 0 Then ' dans ce cas, on remplace la ligne lue par NewValue
Ligne = NewValue
nbrReplacement = nbrReplacement + 1 ' Compteur pour les remplacements
End If
Ret = Ret & Ligne & vbNewLine
Loop
fich.Close ' On doit fermer le fichier car on va l'utiliser en écriture
Set fich = fso.OpenTextFile(FileName, ForWriting, True)
Ret = Left(Ret, Len(Ret) - 2) ' On supprime le dernier retour chariot (vbNewLine)
fich.Write Ret
fich.Close ' On fermer le fichier
End If
Next
End If
Ret = "" ' Sans cette instruction, Ret sera le cumule de tout ce qui a été lu à partir de tous les fichiers .reg
Next
MsgBox " Nombre de remplacements dans tous les fichiers : " & nbrReplacement
'==========================
Function Quote(StrIn)
Quote = Chr(34) & StrIn & Chr(34)
End Function
Il remplace bien la valeur demander dans un dossier mais je voudrais qu'il le remplace dans tous les dossier
Par exemple si il est possible de le mettre en .exe
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Secundo... ce n'est pas un renommage.... pourtant c'est bien ce que tu as écrit dans ton premier message....
Tu parlais d'ailleurs... du renommage de DOSSIER dans un Dossier...
Là.. tu sembles à nouveau vouloir modifier tes fichiers REG ....
Hors il me semblait, vu ton précédent message... que cette question était résolue....
Une fois encore, ta question, les explications que tu donnes, le code que tu montres... sont en totale contradiction. Il faudrait vraiment que tu fasses des efforts car pense bien que nous ne sommes ni devant ton écran... ni dans ta tête. Il faut donc que tu sois le plus précis possible.
Pour ce qui est de l'exe.. non... en VBScript tu ne peux pas.
Si tu veux créer des exe ... il faut que tu le fasses dans un autre langage.
Autoit serait à ta portée... l'écriture du code (du moins dans sa forme) est assez proche du VB ...et il existe, de plus, des fonctions toutes faites pour manipuler des dossiers / fichiers ....
Je t'invite vivement à te renseigner à son sujet.
Le code ici modifie le contenue du fichier xxx.reg comme convenue mais il faut le mettre dans chacun des dossiers je voudrais savoir si il y'a pas un moyen de le mettre sous la racine afin qu'il modifie tout les fichiers sans avoir a rentré dans le dossier " J'espéré que je me suis mieux fais comprendre"