création d'un VBS pour renommer un caractère sur toutes une liste de fichier dans un repertoire

Présentation
Bonjour,

Je cherche un créer un VBS étant capable de remplacer un seul caractère dans toute un liste de fichiers.

Exemple : c:\ma musique\toto_et_tata.mp3

Changer le toto_et_tata.mp3 en toto et tata.mp3

Merci par avance pour vos éléments de réponse.

ps : environnement seven 32bits (je sais pas si cela est important mais je tenais a la préciser)
Téléchargement
0  0 
Téléchargé 53 fois Voir les 3 commentaires
Détails
Avatar de nicolas morel
Nouveau membre du Club
Voir tous les téléchargements de l'auteur
Licence : Autre
Date de mise en ligne : 4 septembre 2015




Avatar de l_autodidacte l_autodidacte - Modérateur https://www.developpez.com
le 06/09/2015 à 10:46
Très simple à faire :
NouveauNom = Replace("c:\ma musique\toto_et_tata.mp3", "_" ," ").
La fonction remplace le caratère "_" par un espace.
Avatar de hackoofr hackoofr - Expert éminent https://www.developpez.com
le 06/09/2015 à 12:41

Pas testé, juste je l'ai modifié vite fait sans vérification au préalable et il est inspiré par ici
Donc, je vous laisse un petit travail pour vous : le traduire en français
Code : Sélectionner tout
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Option Explicit 
Dim File,MyRootFolder 
MyRootFolder = Browse4Folder 
Call Scan4File(MyRootFolder) 
MsgBox "Script Done !",VbInformation,"Script Done !" 
'************************************************************************** 
Function Browse4Folder() 
    Dim objShell,objFolder,Message 
    Message = "Please select a folder in order to scan into it and its subfolders to rename files" 
    Set objShell = CreateObject("Shell.Application") 
    Set objFolder = objShell.BrowseForFolder(0,Message,0,0) 
    If objFolder Is Nothing Then 
        Wscript.Quit 
    End If 
    Browse4Folder = objFolder.self.path 
End Function 
'********************************************************************************************** 
Function Scan4File(Folder) 
    Dim fso,objFolder,arrSubfolders,File,SubFolder,NewFileName 
    Set fso = CreateObject("Scripting.FileSystemObject") 
    Set objFolder = fso.GetFolder(Folder) 
    Set arrSubfolders = objFolder.SubFolders 
    For Each File in objFolder.Files 
        NewFileName = Replace(File.Name,"_"," ") 
        MsgBox "Old File ==> " & File.Name & Vbcr & "New File Name ==> " & NewFileName,Vbinformation,"Rename File" 
        Call RenameFile(File,NewFileName) 
    Next 
    For Each SubFolder in objFolder.SubFolders 
        'Call Scan4File(SubFolder)  
    Next 
End Function 
'********************************************************************** 
Sub RenameFile(File1,File2) 
    Dim Ws,Command,Execution 
    Set Ws = CreateObject("WScript.Shell") 
    Command = "Cmd /c Ren "& DblQuote(File1) &" "& DblQuote(File2) &"" 
    'MsgBox Command 
    Execution = Ws.Run(Command,0,False) 
End Sub 
'********************************************************************** 
Function DblQuote(Str) 
    DblQuote = Chr(34) & Str & Chr(34) 
End Function 
'**********************************************************************
Avatar de euchnico euchnico - Nouveau membre du Club https://www.developpez.com
le 08/09/2015 à 10:56
un grand merci a vous deux, hackoofr, le script est vraiment super !! merci pour ta diligence
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.
Contacter le responsable de la rubrique Visual Basic 6