it-swarm.it

Come posso rinominare i file in massa?

Ho un sacco di file con il modello 99 - DescriptiveName.txt e vorrei rimuovere il numero dalla parte anteriore, quindi ho solo DescriptiveName.txt.

Come posso fare questo? Posso farlo dalla riga di comando o c'è un'utilità che può farlo?

124
BIBD

So che nel tuo titolo dici "in dos" ma ho l'impressione che tu stia cercando un modo per farlo e ti chiedi se sia il modo migliore.

Lo strumento migliore in assoluto che ho trovato per questo è Bulk Rename Utility .

Bulk Rename Utility

Non è uno strumento a linea di comando, ma hanno una versione a riga di comando se si vuole veramente usarla in quel modo.

Ho usato molto la versione GUI, ed è molto potente, molto veloce ed estremamente facile da usare.

Oh, ed èFREEper uso personale.

93
Jim McKeeth

Un piccolo script PowerShell:

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

Combinato con espressioni regolari più complesse, questo potrebbe diventare qualcosa di simile:

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

Che trasforma cose come '01 - Beginning.mp3 'in' Beginning - 01.mp3 '.

Utilizza il parametro -WhatIf su Rename-Item per controllare i nomi prima di emetterli.

56
Joey

AntRenamer rende abbastanza facile definire un modello di ridenominazione; ce ne sono molti già preparati (e fornisce un'anteprima delle azioni):

AntRenamer

Gratuito per uso personale e commerciale.

24
Gnoupi

Se vuoi davvero usare la riga di comando di Windows (se non vuoi scaricare qualcosa), potresti farlo in questo modo:

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

La prima riga restituisce l'elenco di file in un file chiamato fileList.txt. La seconda riga separa ciascuno dei nomi nell'elenco in 3 parti, il #, il "-" e il resto del nome. Per ognuno di questi esegue il comando di rinomina.

24
zdan

vecchia scuola:

È possibile eseguire un DIR e reindirizzare l'output su un file, come in DIR * .TXT> TEMP.BAT

Quindi usa un editor per eliminare ciò che non ti serve e modificare le parti che ti servono. Aggiungi un "@echo off" come linea superiore, salvalo ed eseguilo.

19
WireGuy

Un'altra opzione:Massive File Renamer

Permette di facilmente rinominare multiple file ed estensioni di file . È molto veloce e semplice!

Per utenti avanzati e sviluppatori, è possibile utilizzare espressioni regolari .

Guardalo in azione:

enter image description here

16
IvanRF

Io uso Lo strumento multi-rinomina di Total Commander (Ctrl + M) per cose come questa. Il loro utile strumento, uno dei tanti da contare, è facile da usare e, se necessario, può anche utilizzare espressioni e modelli regolari. Oh, e ovviamente ti dà un'anteprima prima di apportare qualsiasi modifica.

Questa è la terza o la quarta domanda a cui ho risposto raccomandando Total Commander ... Dovrei ricevere una commissione da loro ;-)

13
Yuval

Lo strumento di cui sono stato soddisfatto è ReNamer . Supporta anche il salvataggio delle regole di ridenominazione, che mi è stato utile, poiché molte volte faccio lo stesso rinominare.

Di seguito è riportato un esempio di come eliminare il testo prima del primo trattino, ma ci sono molte altre regole che è possibile definire.

enter image description here

11
Esko Luontola

Ho usato Free Commander Portable (freeware) per questo con buoni risultati:

  1. Seleziona o vai ai file o alle directory da rinominare
  2. Premi [Ctrl-M] (o File> Multi-rinomina)
  3. compila i campi come ha senso per la tua circostanza
  4. verificare che l'anteprima mostri cosa ti aspetti
  5. Partire!
5
matt wilkie

Per utenti avanzati e sviluppatori, suggerirei RegexRenamer .

RegexRenamer screenshot

Professionisti:

  • Interfaccia utente molto semplice;
  • Espressioni regolari a cui gli sviluppatori hanno familiarità;
  • GPLv2;

Aspetti negativi:

  • Non è una riga di comando! :)
4
bytebuster

Ho scoperto RenPhoric circa un mese fa. Superba. Ed è gratuito .

Nessuna interfaccia complicata e sono stato in grado di rinominare rapidamente esattamente come volevo. Espressione regolare in grado. Da allora non ho usato altro.

3
Umber Ferrule

Il modo più semplice sarebbe usare Rinomina Master .

3
Kevin Panko

Ecco unriga di comandosolution --- un programma Java che ho scritto appositamente per semplificare il lavoro con "patterns" nei nomi dei file. È gratuito e open source, quindi sentitevi liberi di modificarlo:

RenameWand
http://renamewand.sourceforge.net/

Alcuni esempi di utilizzo rilevanti:

Lascia tutto prima di "-" nel nome del file:

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

Prepara un numero di 3 cifre al nome del file, ordinando per il tempo dell'ultima modifica:

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

Riorganizzare parti del nome file e cambiare caso:

Java -jar RenameWand.jar  "<album> - <artist> - <song>.<ext>" 
                          "<artist.upper> <album.title> - <song>.<ext.lower>"
3
Zach Scrivena

Come @zdan sopra, l'ho fatto tramite la riga di comando (usando "cmd.exe" in Windows). Ci sono voluti alcuni aggiustamenti per il mio caso particolare, ma una piccola ricerca l'ha risolto.

Come zdan, ho esportato l'elenco in un file TXT, quindi ho usato tokens e delims per rinominare i file di conseguenza. Nel mio caso, ho iniziato con un elenco di file chiamati così:

name-01-02-2012.csv

Volevo che la parte data del file fosse in ordine y/m/d, con la parte "name" alla fine in modo che potesse leggere in questo modo:

2012-01-02-name.csv

Per fare questo in massa, ho usato il seguente codice. Nota che quando lo fai in questo modo, vengono considerate TUTTE le parti del nome del file, inclusa l'estensione di ".csv". Questo mi ha fatto perdere la testa per la prima volta.

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

Il tokens sono le "parti" del nome del file, il delims sono i separatori. Si noti che nel mio caso, ho avuto 2 delimitatori (un trattino e un punto).

Personalmente non mi interessa l'app "Bulk Rename". Come altri hanno già detto, la GUI è atroce e non molto intuitiva. Con una piccola ricerca e una semplice codifica, queste cose possono essere fatte molto più rapidamente e in modo efficiente.

2
gtr1971

Nome divertente e strumento da riga di comando molto potente, molto veloce ed estremamente facile da usare. "Trova e sostituisci testo" FART http://fart-it.sourceforge.net/ FUNZIONA GRANDE! puoi anche rinominare le parole nei file txt.

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

Lo script multi-rename è un'alternativa open source allo strumento Total Commanders Multi Rename che puoi guidare tramite script. Può utilizzare i plugin TC per le informazioni sui metadati.

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 enabledelayedexpansion 
 set X = 5 
 set FOLDER_PATH =. 
 pushd% FOLDER_PATH% 
 per %% f in (*) do if %% f neq% ~ nx0 (
 set "nomefile = %% ~ nf" 
 imposta "nomefile =! nomefile: ~% X%!" 
 ren "%% f" "! nomefile! %% ~ xf" 
) 
 popd 
 

salvarlo in un file batch ed eseguirlo

2
bbm123

Mi piace Cylog's WildRename . È potente, ma facile da usare e ha molte caratteristiche:

  1. veloce
  2. manipolazione delle stringhe
  3. contatori
  4. jolly
  5. espressioni regolari
  6. sostituzione
  7. caso di conversione
  8. registrazione
  9. simulazione (mostra i risultati senza applicarli effettivamente)

enter image description here

2
Synetech

Uso la lavagna per amministrare i corsi in un'università. Quando scarico un compito in massa (in Lavagna, fai clic su in alto nella colonna di valutazione, quindi "scarica il file di assegnazione" Blackboard aggiunge un po 'di extra al nome del file, spesso rendendo il nome del file troppo lungo per essere valido su Windows.

Ecco come sono:

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

E questo è quello che volevo

studentname.docx

Quindi ho utilizzato l'approccio consigliato da @zdan e @ gtr1971 aprendo una finestra di comando sulla cartella con i file interni (CMD.EXE). Quindi eseguire questo comando per inserire tutti i nomi di file in un documento.

dir /b >filelist.txt

Modifica il documento e rimuovi i nomi delle cartelle, ecc.

Utilizzare questo comando per sostituire la roba del nome file aggiunta alla lavagna con solo il nome utente e l'estensione del file.

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

Spero che questo aiuti anche qualcun altro.

1
Webmentorman

Ho sviluppato un'utilità di riga di comando ibrida JScript/batch chiamata JREN.BAT che può rinominare file o cartelle eseguendo una ricerca di espressioni regolari e sostituendola sui nomi. È puro script che verrà eseguito in modo nativo su qualsiasi macchina Windows da XP avanti. La documentazione completa è incorporata nello script.

Supponendo che JREN.BAT si trovi nella tua directory corrente, o meglio ancora, da qualche parte nel tuo percorso, allora il tuo compito di rinominare diventa banale.

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

o

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

Ci sono molte opzioni, tra cui l'opzione /S che esegue in modo ricorsivo la rinomina su sottodirectory.

1
dbenham

Ecco un altro semplice programma chiamato File Attribute Changer che puoi usare per rinominare i file. È un programma portatile, quindi puoi portarlo su un'unità USB.

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

1
Brian

Se hai bisogno di potenza seria e sei disposto a sborsare i soldi ... PowerGrep è uno degli strumenti più potenti e versatili sul mercato ... puoi rinominare quasi tutto con PowerGrep ... anche con la ricerca binaria e sostituire ... è stato creato da RegEx Guru, Jan Goyvaerts .

enter image description here

0
Eddie B