web-dev-qa-db-fra.com

Comment trouver et remplacer un caractère dans les noms de fichiers dans Windows 7 à l'aide de l'Explorateur?

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?

15
Nam G VU

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.

18
seanyboy

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.

3

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
3
RJFalconer

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.

2
Codism

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/

2
Malcolm

Outil de renommage basé sur Windows, le plus puissant qui existe, et il est gratuit. http://www3.telus.net/pfrank/

1
therobyouknow

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)

  1. Sélectionner tous les fichiers dans Bridge
  2. Clic droit> Renommer par lot

Bonus supplémentaire: Supporte Regex!

Screen Shot

1
Gigilamesh