Je veux remplacer tous les caractères de soulignement (_
) par un espace () dans un nom de fichier.
Comment puis-je faire cela rapidement, quand j'ai beaucoup de caractères _
à remplacer?
vbScript devrait le faire pour vous. Créez un fichier appelé "rename_underscores.vbs" contenant les éléments suivants.
Set objFso = CreateObject("Scripting.FileSystemObject")
Set Folder = objFSO.GetFolder("c:\test\")
For Each File In Folder.Files
sNewFile = File.Name
sNewFile = Replace(sNewFile,"_"," ")
if (sNewFile<>File.Name) then
File.Move(File.ParentFolder+"\"+sNewFile)
end if
Next
Assurez-vous que le nom du dossier est correct. (Dans l'exemple, j'ai utilisé c:\test), puis double-cliquez sur votre fichier pour renommer le fichier.
Je recommande d'utiliser un outil tiers tel que Utilitaire de changement de nom en bloc . C'est gratuit et il y a un installateur de moins de 1 MB.
Ceci est dans les domaines d'un fichier dos bat. Créez un fichier bat (Nouveau-> Fichier texte, renommez l'extension en .bat), puis copiez-y les sections bleues ci-dessous.
Je vais le scinder en sections et expliquer ce qu'il fait.
Imprimer l'état actuel du répertoire pour comparer plus tard
dir /b
Répertoriez les fichiers du répertoire, puis appelez ProcessFile pour tous ceux qui contiennent un trait de soulignement et se terminent par .txt.
for %%f in (*_*.txt) do call :ProcessFile %%f
goto :finished
La syntaxe "str =% str: x = y%" remplace les instances de x par y. Dans ce cas, nous remplaçons "_" par rien
:ProcessFile
set str=%1
rename %1 %str:_=%
goto :eof
C'est tout!
Maintenant, il n’imprime que ce qui a été modifié afin que nous puissions confirmer que tout fonctionne comme prévu;
:finished
echo ----
dir /b
Résultats (ne fait pas partie du fichier bat)
baz_ing.txt
big_rawr.foo
foo_bar.txt
multiple_underscores_test.txt
----
bazing.txt
big_rawr.foo
foobar.txt
multipleunderscorestest.txt
Voici mon script de changement de nom Ruby . Je n'ai pas utilisé d'autres outils de renommage par lots, mais je pense que mon script est très facile à utiliser et très polyvalent. Voici la commande pour votre cas:
Ruby bren.rb *_* "_/ "
J'ai configuré mon environnement Windows de telle manière que bren.rb puisse être exécuté en tant qu'exécutable à partir de n'importe quel répertoire.
Comme d'autres l'ont mentionné, il n'y a aucun moyen de faire exactement ce que vous voulez sans utiliser un script ou un fichier de commandes. Par exemple, dans PowerShell, vous pouvez faire ce que vous voulez assez facilement:
cd "C:\Users\MyName\Documents\MyDirectory"
Dir | Rename-Item –NewName { $_.name –replace "_"," " }
Assurez-vous simplement de remplacer "C:\Utilisateurs\MonNom\Documents\MonRépertoire" par le chemin de votre répertoire.
Pour plus de détails et d’autres options, y compris certaines choses que vous pouvez faire en utilisant simplement Explorer, voir ici: http://www.howtogeek.com/111859/comment-renommer-les-fichiers-par-lots dans Windows-4-façons-de-renommer-plusieurs-fichiers/
Outil de renommage basé sur Windows, le plus puissant qui existe, et il est gratuit. http://www3.telus.net/pfrank/
Cela ne répond pas explicitement à la question ('.. in Explorer'), mais j'ai trouvé le logiciel le plus utile pour ce faire était Adobe Bridge (Gratuit)
Bonus supplémentaire: Supporte Regex!