Quelle commande dans Windows émule la commande de déplacement / renommage récursif de Unix?
Réponses
Trop de publicités?J'ai créé un script VB qui fera une recherche et un remplacement sur les noms de répertoires... J'ai aussi une version pour les fichiers, cependant, je pense que cela suffit pour vous aider à démarrer avec votre propre script. La façon dont j'utilise ce script est que j'ai un fileandreplacedirs.vbs
, et je le mets dans le même dossier que les dossiers que je veux renommer. De plus, il ne parcourt pas nécessairement le dossier de manière récursive, mais cela pourrait se faire avec une petite modification
search1 = InputBox("Rechercher...", "", "")
replace1 = InputBox("remplacer par...", "", "")
Dim MyFile
MyFiles = GetFileArray(".")
For Each MyFile In MyFiles
NewFilename = Replace(MyFile.Name, search1, replace1)
If InStr( MyFile.Name, search1 ) Then MyFile.Name = NewFilename
Next
MsgBox "Terminé..."
function GetFileArray(ByVal vPath)
'Obtenez nos objets...
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.Getfolder(vPath)
Set Files = Folder.SubFolders
'Redimensionner le tableau local
'Les tableaux commencent à 0 mais la collection Files commence à 1.
if Files.count = 0 then
GetFileArray = array()
Exit Function
Else
Index = 0
Redim FileList(Files.Count-1)
For Each File In Files
set FileList(Index) = File
Index = Index + 1
Next
GetFileArray = FileList
End If
'Il est toujours bon de libérer explicitement les objets...
Set FSO = Nothing
Set Folder = Nothing
Set Files = Nothing
End function
Cela a mieux fonctionné pour moi :
FOR /R "C:\folder1\folder2\" %i in (.,*) DO MOVE /Y "%i" "C:\folder1\"
Source : http://www.islamadel.com/index.php/notes/6-computer/10-windows-command-line
J'ai trouvé ce script python qui fonctionne également :
for root, dirs, files in os.walk(cur_dir):
for filename in files:
file_ext = os.path.splitext(filename)[1]
if old_ext == file_ext:
oldname = os.path.join(root, filename)
newname = oldname.replace(old_ext, new_ext)
os.rename(oldname, newname)
Trouvé sur : http://gomputor.wordpress.com/2008/09/29/change-the-extension-of-multiple-files-in-a-chosen-directory-with-python/
J'ai ajouté Python à mon chemin et mis le script Python ci-dessus dans un dossier 'utils'. J'ai ensuite créé ce simple script batch pour l'exécuter : rn.bat:
python \utils\rn.py %1 %2 %3
J'ai également mis à jour le script python ci-dessus pour qu'il prenne ses arguments à partir de la ligne de commande. rn.py:
import sys
import os
cur_dir = sys.argv[1]
old_ext = sys.argv[2]
new_ext = sys.argv[3]
#print cur_dir, old_ext, new_ext
for root, dirs, files in os.walk(cur_dir):
for filename in files:
file_ext = os.path.splitext(filename)[1]
if old_ext == file_ext:
oldname = os.path.join(root, filename)
newname = oldname.replace(old_ext, new_ext)
os.rename(oldname, newname)
Enfin, tout ce qu'il faut faire maintenant est quelque chose comme ceci :
>rn . .foo .bar
ou
>rn \ .exe .txt
Amusez-vous avec le deuxième :)