2009-07-30 20:31:17 +0000 2009-07-30 20:31:17 +0000
126
126

¿Cómo puedo renombrar en masa los archivos?

Tengo un montón de archivos nombrados con un patrón 99 - DescriptiveName.txt y me gustaría quitar el número del frente así que sólo tengo DescriptiveName.txt.

¿Cómo puedo hacer esto? ¿Puedo hacerlo desde la línea de comandos o hay alguna utilidad que pueda hacer esto?

Respuestas (22)

94
94
94
2009-07-30 20:58:54 +0000

Sé que en tu título dices “in dos” pero tengo la impresión de que sólo buscas una manera de hacer esto y me pregunto si es la mejor manera.

La mejor herramienta que he encontrado para esto es Bulk Rename Utility.

No es una herramienta de línea de comandos, pero tienen una versión de línea de comandos si realmente quieres usarla de esa manera.

He usado mucho la versión GUI, y es muy potente, muy rápida y extremadamente fácil de usar.

Oh, y es GRATIS para uso personal.

60
60
60
2011-07-13 17:30:08 +0000

Un pequeño script de PowerShell:

$args | Rename-Item -NewName { $_.Name.ToLower() -replace '\d+ - ' }

Combinado con expresiones regulares más complejas, esto podría convertirse en algo como:

ls | Rename-Item -NewName {$_ -replace '(\d+) - (.*).mp3', '$2 - $1.mp3' }

Que convierte cosas como ‘01 - Beginning.mp3’ en ‘Beginning - 01.mp3’.

Utiliza el parámetro -WhatIf en Rename-Item para comprobar los renombramientos antes de emitirlos.

24
24
24
2009-08-07 17:21:40 +0000

AntRenamer hace bastante fácil definir un patrón de renombramiento; hay muchos ya preparados (y da una vista previa de las acciones):

Libre para uso personal y comercial.

24
24
24
2009-08-07 17:53:34 +0000

Si realmente quieres usar la línea de comandos de Windows (si no quieres descargar algo), podrías hacerlo así:

dir /B > fileList.txt
for /f "tokens=1,2,3" %i in (fileList.txt) DO ren "%i %j %l" %l

La primera línea da salida a la lista de archivos en un archivo llamado fileList.txt. La segunda línea separa cada uno de los nombres de la lista en 3 partes, el #, el “-” y el resto del nombre. Para cada uno de ellos hace el comando de renombrar.

19
19
19
2009-07-30 21:24:47 +0000

a la vieja escuela:

Puedes hacer un DIR y redirigir la salida a un archivo, como en DIR *.TXT >TEMP.BAT

Entonces usa un editor para sacar lo que no necesitas y modificar las partes que sí necesitas. Añade un “@echo off” como línea superior, guárdalo y ejecútalo.

17
17
17
2014-03-18 01:33:41 +0000

Otra opción: * Renombrador Masivo de Archivos **

Permite fácilmente renombrar múltiples archivos y extensiones de archivos. Es muy rápido y simple!

Para usuarios avanzados y desarrolladores, es posible usar expresiones regulares.

Véalo en acción:

13
13
13
2009-08-23 08:56:29 +0000

Uso la herramienta multi-nombre de Comandante Total (ctrl+M) para cosas como esta. Su útil herramienta, una de las demasiadas para contar, es fácil de usar, y también puede emplear expresiones regulares y plantillas si es necesario. Oh, y obviamente te da una vista previa antes de hacer cualquier cambio.

Esta es la tercera o cuarta pregunta que he contestado recomendando a Total Commander… que debería recibir una comisión de ellos ;-)

11
11
11
2009-07-30 22:11:57 +0000

La herramienta con la que estoy satisfecho es el ReNamer (http://www.den4b.com/). También soporta el guardar las reglas de renombramiento, lo cual me ha sido útil, ya que muchas veces hago los mismos renombramientos.

A continuación hay un ejemplo de cómo borrar el texto antes del primer guión, pero hay un montón de otras reglas que puedes definir.

5
5
5
2009-11-27 23:02:30 +0000

He usado Comandante Libre Portátil (freeware) para esto a buen efecto:

  1. Selecciona o navega a los archivos o directorios para renombrar
  2. Presione
4
4
4
2013-01-03 10:47:45 +0000

Para usuarios y desarrolladores avanzados, sugeriría RegexRenamer .

Pro’s:

  • UI muy simple;
  • Expresiones regulares con las que los desarrolladores están familiarizados;
  • GPLv2;

Con’s:

  • ¡No es una línea de comandos! :)
3
3
3
2009-08-23 06:16:40 +0000

Aquí hay una solución command-line, un programa de Java que escribí específicamente para facilitar el trabajo con “patrones” en los nombres de archivos. Es libre y de código abierto, así que siéntase libre de modificarlo:

RenameWand http://renamewand.sourceforge. net/

Algunos ejemplos de uso relevantes:

Dejar todo antes del "-" en el nombre de archivo:

java -jar RenameWand.jar "<a> - <b>" "<b>"

Prepárese un número de 3 dígitos al nombre de archivo, ordenando por el último tiempo modificado:

java -jar RenameWand.jar "<a>" "<3|#FT> <a>"

Reorganizar las partes del nombre de archivo, y cambiar el caso:

java -jar RenameWand.jar "<album> - <artist> - <song>.<ext>" 
                          "<artist.upper> <album.title> - <song>.<ext.lower>"
3
3
3
2009-08-23 09:31:32 +0000

Descubrí RenPhoric hace un mes. Espléndido. Y es libre.

No tiene una interfaz complicada y rápidamente pude cambiar el nombre exactamente como quería. Capacidad de expresión regular. No he usado nada más desde entonces.

3
3
3
2009-07-30 20:37:17 +0000

La forma más fácil sería usar Renombrar Maestro .

2
2
2
2014-07-04 05:53:01 +0000
@echo off setlocal enabledelayedexpansion set X=5 set FOLDER\_PATH=. pushd %FOLDER\_PATH% for %%f in (\*) do if %%f neq %~nx0 ( set "filename=%%~nf" set "filename=!filename:~%X%!" ren "%%f" "!filename!%%~xf" ) popd

guarda esto en un archivo por lotes y ejecuta

2
2
2
2013-03-30 20:17:45 +0000

Divertida herramienta de nombre y línea de comandos muy poderosa, muy rápida y extremadamente fácil de usar. “Encontrar y reemplazar el texto” PEDO http://fart-it.sourceforge.net/ HACE GRANDIOSO! puede renombrar palabras en los archivos txt también.

USO

Usage: FART [options] [--] <wildcard>[,...] [find_string] [replace_string]

Options:
 -h --help Show this help message (ignores other options)
 -q --quiet Suppress output to stdio / stderr
 -V --verbose Show more information
 -r --recursive Process sub-folders recursively
 -c --count Only show filenames, match counts and totals
 -i --ignore-case Case insensitive text comparison
 -v --invert Print lines NOT containing the find string
 -n --line-number Print line number before each line (1-based)
 -w --word Match whole word (uses C syntax, like grep)
 -f --filename Find (and replace) filename instead of contents
 -B --binary Also search (and replace) in binary files (CAUTION)
 -C --c-style Allow C-style extended characters (\xFF&001\t\n\r\ etc.)
    --cvs Skip cvs dirs; execute "cvs edit" before changing files
 -a --adapt Adapt the case of replace_string to found string
 -b --backup Make a backup of each changed file
 -p --preview Do not change the files but print the changes
2
2
2
2013-11-04 09:58:24 +0000

El script de renombramiento múltiple es una alternativa de código abierto a la herramienta de renombramiento múltiple de Total Commanders, que se puede manejar a través de un script. Puede usar plugins de TC para la información de metadatos. https://code.google.com/p/multi-rename-script/

2
2
2
2011-08-14 16:27:25 +0000

Me gusta Cylog’s WildRename. Es poderoso, pero fácil de usar, y tiene muchas características:

  1. Rápido
  2. Manipulación de cadenas
  3. Contadores
  4. Comodines
  5. Expresiones regulares
  6. Sustitución
  7. Conversión de casos
  8. Registro de datos
  9. simulación (mostrar los resultados sin aplicarlos realmente)

2
2
2
2012-09-10 15:11:39 +0000

Como @zdan arriba, lo hice por línea de comandos (usando “cmd.exe” en Windows). Me costó un poco de trabajo en mi caso particular, pero un poco de investigación lo solucionó.

Como @zdan, imprimí la lista en un archivo TXT, luego usé tokens y delims para renombrar los archivos en consecuencia. En mi caso, empecé con una lista de archivos llamados así:

name-01-02-2012.csv

Quería que la parte de la fecha del archivo estuviera en el orden y/m/d, con la parte del “nombre” al final para que se leyera así:

2012-01-02-name.csv

Para hacer esto en-masse, usé el siguiente código. Tenga en cuenta que al hacerlo de esta manera, se consideran TODAS las partes del nombre del archivo, incluyendo la extensión de “.csv”. Eso me fastidió la primera vez.

dir /B > fileList.txt
for /f "tokens=1,2,3,4,5 delims=-." %i in (fileList.txt) DO ren "%i-%j-%k-%l.%m" %l-%j-%k-%i.%m

El tokens son las “partes” del nombre de archivo, el delims son los separadores. Fíjense que en mi caso, tenía 2 delimitadores (un guión y un punto).

Personalmente no me interesa la aplicación “Bulk Rename”. Como otros han mencionado, el GUI es atroz y no muy intuitivo. Con un poco de investigación y una simple codificación, estas cosas se pueden hacer mucho más eficiente y rápidamente.

1
1
1
2014-12-01 02:56:58 +0000

He desarrollado un JScript híbrido/lote de línea de comando llamado JREN.BAT que puede renombrar archivos o carpetas realizando una búsqueda de expresión regular y reemplazar en los nombres. Es un script puro que se ejecutará de forma nativa en cualquier máquina de Windows a partir de XP. La documentación completa está incrustada dentro del script.

Asumiendo que JREN.BAT está en su directorio actual, o mejor aún, en algún lugar dentro de su ruta, entonces su tarea de renombrar se vuelve trivial.

jren "^\d+[-]+(.+)\.txt$" "$1" /i

o

jren "^\d+[-]+(?=.+\.)" "" /fm "*.txt"

Hay muchas opciones, incluyendo la opción /S que realiza recursivamente el renombramiento en subdirectorios.

1
1
1
2013-03-02 20:08:23 +0000

Uso la Pizarra para administrar los cursos en una Universidad. Cuando descargo una tarea en masa (en Blackboard, haga clic en la parte superior de la columna de calificación, luego “descarga de archivo de la tarea” Blackboard agrega un montón de cosas extra al nombre del archivo - a menudo haciendo que el nombre del archivo sea demasiado largo para ser válido en Windows.

Así es como se ven:

Recitation20Assignment_studentname_attempt_2013-03-01-20-03-09_Exercise28129.docx

Y esto es lo que yo quería

studentname.docx

Así que usé el enfoque que @zdan y @gtr1971 aconsejaron, abriendo una ventana de comandos en la carpeta con los archivos dentro (CMD.EXE). Luego ejecute este comando para poner todos los nombres de los archivos en un documento.

dir /b >filelist.txt

Edite el documento y elimine los nombres de las carpetas, etc.

Utilice este comando para reemplazar el material de nombres de archivos añadidos en la pizarra con sólo el nombre de usuario y la extensión del archivo.

for /f "tokens=1,2,3,4,5,6 delims=_." %i in (filelist.txt) do ren "%i _%j_%k_%l_%m.%n" %j.%n

Espero que esto ayude a alguien más también.

1
1
1
2013-07-10 23:07:13 +0000

Aquí hay otro programa simple llamado Cambiador de Atributos de Archivos que puedes usar para renombrar archivos. Es un programa portátil, así que puedes llevarlo en una unidad USB. http://www.softpedia.com/get/Desktop-Enhancements/Other-Desktop-Enhancements/File-Attribute-Changer.shtml

0
0
0
2015-03-18 00:47:18 +0000

Si necesitas un poder serio y estás dispuesto a desembolsar el dinero… PowerGrep es una de las herramientas más poderosas y versátiles del mercado… puedes renombrar casi cualquier cosa con PowerGrep… incluso la búsqueda binaria y el reemplazo… es creado por el Gurú RegEx, Jan Goyvaerts .

Verwandte Fragen

3
19
10
28
3