it-swarm-es.tech

¿Cómo puedo cambiar el nombre de archivos en masa?

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

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

124
BIBD

Sé que en tu título dices "in dos" pero me da la impresión de que solo estás buscando la manera de hacerlo y te preguntas si esa es la mejor manera.

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

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.

Ah, y esLIBREpara uso personal.

93
Jim McKeeth

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' }

Lo que convierte cosas como '01 - Beginning.mp3 'en' Beginning - 01.mp3 '.

Use el parámetro -WhatIf en Rename-Item para verificar los nombres antes de emitirlos.

56
Joey

AntRenamer hace que sea bastante fácil definir un patrón de cambio de nombre; Hay muchos ya preparados (y da una vista previa de las acciones):

AntRenamer

Gratis para uso personal y comercial.

24
Gnoupi

Si realmente quieres usar la línea de comandos de Windows (si no quieres descargar algo), puedes 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 genera la lista de archivos en un archivo llamado fileList.txt. La segunda línea separa cada uno de los nombres en la lista en 3 partes, el #, el "-" y el resto del nombre. Para cada uno de ellos hace el comando renombrar.

24
zdan

vieja escuela:

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

Luego use un editor para sacar lo que no necesita y modifique las partes que sí necesita. Agregue un "@echo off" como línea superior, guárdelo y ejecútelo.

19
WireGuy

Otra opción:Renombrador masivo de archivos

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

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

Véalo en acción:

enter image description here

16
IvanRF

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

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

13
Yuval

La herramienta con la que estoy satisfecho es ReNamer . También admite el guardado de reglas de cambio de nombre, que me ha sido útil, ya que muchas veces hago el mismo cambio de nombre.

A continuación se muestra un ejemplo de cómo eliminar texto antes del primer guión, pero hay muchas otras reglas que puede definir.

enter image description here

11
Esko Luontola

He usado Free Commander Portable (freeware) para este efecto:

  1. Seleccione o navegue a los archivos o directorios para renombrarlos.
  2. Presione [Ctrl-M] (o Archivo> Multi-renombrar)
  3. rellene los campos como tenga sentido para su circunstancia.
  4. verifica que la vista previa muestre lo que esperas
  5. ¡Ir!
5
matt wilkie

Para usuarios avanzados y desarrolladores, sugeriría RegexRenamer .

RegexRenamer screenshot

Pro:

  • IU muy simple;
  • Expresiones regulares que los desarrolladores conocen;
  • GPLv2;

Contras:

  • ¡No es una línea de comando! :)
4
bytebuster

Descubrí RenPhoric hace aproximadamente un mes. Magnífico. Y es gratis .

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

3
Umber Ferrule

La forma más fácil sería usar Rename Master .

3
Kevin Panko

Aquí hay unlínea de comandosolución --- un programa Java que escribí específicamente para facilitar el trabajo con "patrones" en los nombres de archivo. Es gratis y de código abierto, así que siéntete libre de modificarlo:

RenameWand
http://renamewand.sourceforge.net/

Algunos ejemplos de uso relevantes:

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

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

Preponga un número de 3 dígitos al nombre del archivo, ordenado por la última hora de modificación:

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

Reorganizar 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
Zach Scrivena

Como @zdan arriba, lo hice por línea de comandos (usando "cmd.exe" en Windows). Tomó algunos retoques para mi caso particular, pero un poco de investigación lo resolvió.

Al igual que zdan, imprimo la lista en un TXT archivo, luego usé tokens y delims para cambiar el nombre de los archivos en consecuencia. En mi caso, comencé con una lista de archivos llamados así:

name-01-02-2012.csv

Quería que la parte de la fecha del archivo estuviera en orden y/m/d, con la parte de "nombre" al final para que se pudiera leer así:

2012-01-02-name.csv

Para hacer esto en masa, utilicé el siguiente código. Tenga en cuenta que al hacerlo de esta manera, se consideran TODAS las partes del nombre de archivo, incluida la extensión de ".csv". Eso me hizo tontos 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

Los tokens son las "partes" del nombre de archivo, los delims son los separadores. Tenga en cuenta que en mi caso, tenía 2 delimitadores (un guión y un punto).

Personalmente no me importa la aplicación "Bulk Rename". Como han mencionado otros, la GUI es atroz y no muy intuitiva. Con un poco de investigación y codificación simple, estas cosas se pueden hacer mucho más rápido y eficiente.

2
gtr1971

Nombre divertido y herramienta de línea de comando muy poderosa, muy rápida y extremadamente fácil de usar. "Buscar y reemplazar texto" FART http://fart-it.sourceforge.net/ ¡TRABAJA GRANDE! puede cambiar el nombre de las palabras en 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\0\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
user212780

El script de cambio de nombre múltiple es una alternativa de código abierto a la herramienta Total Renombrador de nombre de Multi Commanders que puede manejar a través del script. Puede utilizar complementos TC para información de metadatos.

https://code.google.com/p/multi-rename-script/ http://multi-rename-script.googlecode.com/svn/trunk/docs/res/MRS.PNG

2
majkinetor
 @ echo off 
 setlocal enabledelayededpansion 
 set X = 5 
 set FOLDER_PATH =. 
 pushd% FOLDER_PATH% 
 para %% 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
bbm123

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

  1. rápido
  2. manipulación de cuerdas
  3. contadores
  4. comodines
  5. expresiones regulares
  6. sustitución
  7. conversión de casos
  8. explotación florestal
  9. simulación (muestra los resultados sin aplicarlos realmente)

enter image description here

2
Synetech

Utilizo Blackboard para administrar cursos en una universidad. Cuando descargo una asignación en masa (en Blackboard, haga clic en la parte superior de la columna de calificación, luego en "descargar archivo de asignación" Blackboard agrega un montón de elementos adicionales al nombre del archivo, a menudo haciendo que el nombre del archivo sea demasiado largo para que sea válido en Windows.

Esto es lo que parecen:

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

Y esto es lo que quería

studentname.docx

Así que utilicé el enfoque recomendado por @zdan y @ gtr1971, abriendo una ventana de comando en la carpeta con los archivos dentro (CMD.EXE). A continuación, ejecute este comando para colocar todos los nombres de archivo en un documento.

dir /b >filelist.txt

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

Use este comando para reemplazar las cosas agregadas de Blackboard por el nombre de archivo con solo el nombre de usuario y la extensión de 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
Webmentorman

He desarrollado una utilidad de línea de comandos JScript/batch híbrida llamada JREN.BAT que puede renombrar archivos o carpetas realizando una búsqueda de expresiones regulares y reemplazando los nombres. Es un script puro que se ejecutará de forma nativa en cualquier máquina Windows desde XP hacia adelante. La documentación completa está incrustada dentro del script.

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

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

o

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

Hay muchas opciones, incluida la opción /S que realiza recursivamente el cambio de nombre en los subdirectorios.

1
dbenham

Aquí hay otro programa simple llamado File Attribute Changer que puedes usar para renombrar archivos. Es un programa portátil, por lo que puede llevarlo en una unidad USB.

http://www.softpedia.com/get/Desktop-Enhancements/Other-Desktop-Enhancements/File-Attribute-Changer.shtml

1
Brian

Si necesita un poder serio y está dispuesto a desembolsar el dinero ... PowerGrep es una de las herramientas más potentes y versátiles del mercado ... puede cambiar el nombre de casi cualquier cosa con PowerGrep ... incluso búsqueda binaria y Reemplace ... está creado por RegEx Guru, Jan Goyvaerts .

enter image description here

0
Eddie B