Renommer un dossier
Fermé
Jordi.D
Messages postés
51
Date d'inscription
vendredi 11 janvier 2019
Statut
Membre
Dernière intervention
8 février 2019
-
Modifié le 21 janv. 2019 à 15:08
Jordi.D Messages postés 51 Date d'inscription vendredi 11 janvier 2019 Statut Membre Dernière intervention 8 février 2019 - 22 janv. 2019 à 14:07
Jordi.D Messages postés 51 Date d'inscription vendredi 11 janvier 2019 Statut Membre Dernière intervention 8 février 2019 - 22 janv. 2019 à 14:07
A voir également:
- Renommer un dossier
- Dossier appdata - Guide
- Renommer plusieurs fichiers en même temps - Guide
- Mettre un mot de passe sur un dossier - Guide
- Renommer iphone - Guide
- Impossible de supprimer un dossier - Guide
1 réponse
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
21 janv. 2019 à 16:29
21 janv. 2019 à 16:29
Bonjour,
Donc maintenant, ce n'est plus de la modification de fichier reg, mais juste le renommage de dossier ?
Avec le code que tu as déjà pour les fichiers reg ...il est facile de l'adapter pour cette nouvelle question.
Qu'as tu essayé ?
Sur quoi bloques tu ?
Donc maintenant, ce n'est plus de la modification de fichier reg, mais juste le renommage de dossier ?
Avec le code que tu as déjà pour les fichiers reg ...il est facile de l'adapter pour cette nouvelle question.
Qu'as tu essayé ?
Sur quoi bloques tu ?
22 janv. 2019 à 13:15
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
22 janv. 2019 à 13:57
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.
22 janv. 2019 à 14:07
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"