Je veux remplacer tous les caractères de soulignement ( _
) par un espace ( ) dans un nom de fichier.
Comment puis-je le faire rapidement, quand j'ai beaucoup de _
caractères à remplacer?
Je veux remplacer tous les caractères de soulignement ( _
) par un espace ( ) dans un nom de fichier.
Comment puis-je le faire rapidement, quand j'ai beaucoup de _
caractères à remplacer?
Réponses:
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) Et puis double-cliquez sur votre fichier pour renommer.
Je recommande d'utiliser un outil tiers comme Bulk Rename Utility . C'est gratuit et il a un installateur de moins de 1 Mo.
C'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 diviser en sections et expliquer ce qu'il fait.
Imprimer l'état actuel du répertoire pour une comparaison ultérieure
dir /b
Liste les fichiers dans le répertoire, puis pour tous ceux qui contiennent un trait de soulignement et se terminent en .txt, appelez ProcessFile dessus.
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 ça!
Maintenant, il imprime simplement ce qui a été changé afin que nous puissions confirmer qu'il 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
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 batch. 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: \ Users \ MyName \ Documents \ MyDirectory" par le chemin d'accès à 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/how-to-batch-rename-files-in-windows-4-ways- renommer plusieurs fichiers /
Voici mon script ruby renommer par lots . 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é comme un exécutable à partir de n'importe quel répertoire.
Outil de renommage basé sur Windows, le plus puissant qui soit et gratuit. http://www3.telus.net/pfrank/
Cela ne répond pas explicitement à la question ('.. dans Explorer'), mais j'ai trouvé que le logiciel le plus utile pour ce faire était Adobe Bridge (gratuit)
Bonus supplémentaire: prend en charge Regex!