¿Cómo encuentro y reemplazo un carácter en los nombres de archivo en Windows 7 usando el Explorador?


16

Quiero reemplazar todos los caracteres de subrayado ( _) con un espacio ( ) en un nombre de archivo.

¿Cómo puedo hacer esto rápidamente, cuando tengo muchos _personajes para reemplazar?


44
Como indican las respuestas, hay / hay / no hay manera de hacer esto en Explorer. Necesita un script o un renombrador de archivos por lotes.
— Shinrai

Respuestas:


20

vbScript debería hacerlo por usted. Cree un archivo llamado "rename_underscores.vbs" que contenga lo siguiente.

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

Asegúrese de que el nombre de la carpeta sea correcto. (En el ejemplo, he usado c: \ test) Y luego haz doble clic en tu archivo para cambiar el nombre.


Tenga en cuenta que lo mismo funciona con carpetas, usando 'Folder.SubFolders' en lugar de 'Folder.Files'.
— Max Hohenegger

funcionando perfectamente, solo necesito cuidar el camino. +1 gracias
— Raj

4

Recomiendo usar una herramienta de terceros como Bulk Rename Utility . Es gratis y tiene un instalador de menos de 1 MB.


1
¿Qué sucede si el nombre del archivo es "this_is_a_test.ext"?
— seanyboy

1
Bulk Rename Utility es una GRAN aplicación. Es muy versátil y no creo que puedas lograr lo mismo con Explorer.
— Alex Angelico

El comando dos sería un poco más complicado que eso. Me burlaré de uno.
— RJFalconer el

3

Esto está dentro de los reinos de un archivo dos bat. Cree un archivo bat (Nuevo-> Archivo de texto, cambie el nombre de la extensión a .bat) y luego copie las secciones azules a continuación.

Lo dividiré en secciones y explicaré lo que está haciendo.


Imprima el estado actual del directorio para comparar más tarde

dir /b

Enumere los archivos en el directorio, luego, para todos los que contienen un guión bajo y terminan en .txt, llame a ProcessFile en ellos.

for %%f in (*_*.txt) do call :ProcessFile %%f
goto :finished

La sintaxis "str =% str: x = y%" reemplaza las instancias de x con y. En este caso, estamos reemplazando "_" con nada

:ProcessFile
set str=%1
rename %1 %str:_=%
goto :eof

¡Eso es!

Ahora solo imprime lo que se cambió para que podamos confirmar que funciona como se esperaba;

:finished
echo ----
dir /b

Resultados (no forma parte del archivo bat)

baz_ing.txt
big_rawr.foo
foo_bar.txt
multiple_underscores_test.txt
----
bazing.txt
big_rawr.foo
foobar.txt
multipleunderscorestest.txt

2

Como otros han mencionado, no hay forma de hacer exactamente lo que quiere sin usar un script o un archivo por lotes. Por ejemplo, en PowerShell puedes hacer lo que quieras con bastante facilidad:

cd "C:\Users\MyName\Documents\MyDirectory"
Dir | Rename-Item –NewName { $_.name –replace "_"," " }

Solo asegúrese de reemplazar "C: \ Users \ MyName \ Documents \ MyDirectory" con la ruta a su directorio.

Para obtener más detalles y otras opciones, incluidas algunas cosas que puede hacer con solo Explorer, consulte aquí: http://www.howtogeek.com/111859/how-to-batch-rename-files-in-windows-4-ways- cambiar el nombre de varios archivos /


2

Aquí está mi script de ruby ​​para renombrar lotes . No he usado otras herramientas de cambio de nombre por lotes, pero creo que mi script es muy fácil de usar y muy versátil. Aquí está el comando para su caso:

ruby bren.rb *_* "_/ "

He configurado mi entorno de Windows de tal manera que bren.rb se puede ejecutar como ejecutable desde cualquier directorio.



1

Esto no responde explícitamente a la pregunta ('... en Explorer'), pero encontré que el software más útil para hacer esto fue Adobe Bridge (Gratis)

  1. Seleccione todos los archivos en Bridge
  2. Haga clic derecho> Cambiar nombre de lote

Bonificación adicional: ¡Admite Regex!

Captura de pantalla

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.