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

Come posso rinominare in massa i file?

Advertisement

Ho un mucchio di file nominati con un modello 99 - DescriptiveName.txt e vorrei rimuovere il numero dalla parte anteriore così ho solo DescriptiveName.txt.

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

Advertisement

Risposte (22)

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

So che nel tuo titolo dici “in dos” ma ho l'impressione che tu stia solo cercando un modo per farlo e ti stai chiedendo se questo è il modo migliore.

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

Non è uno strumento a riga di comando, ma hanno una versione a riga di comando se si vuole davvero usarlo in questo modo.

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

Oh, ed è LIBERA per uso personale.

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

Un piccolo script PowerShell:

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

In combinazione con espressioni regolari più complesse, questo potrebbe diventare qualcosa come:

&001 &001

che trasforma cose come ‘01 - Beginning.mp3’ in ‘Beginning - 01.mp3’.

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

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

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

Gratuito per uso personale e commerciale.

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

Se si vuole davvero usare la riga di comando di windows (se non si vuole scaricare qualcosa), si può fare così:

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

La prima riga visualizza la lista dei file in un file chiamato fileList.txt. La seconda riga separa ciascuno dei nomi della lista in 3 parti, il #, il “-” e il resto del nome. Per ognuno di essi esegue il comando di rinominare.

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

old school:

Potete fare un DIR e reindirizzare l'output su un file, come in DIR *.TXT >TEMP.BAT

Poi usate un editor per togliere ciò che non vi serve e modificare le parti che vi servono. Aggiungete un “@echo off” come riga superiore, salvatelo ed eseguitelo.

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

Un'altra opzione: * Massive File Renamer **

Permette di nominare facilmente più file ed estensioni di file. È molto veloce e semplice!

Per utenti e sviluppatori avanzati è possibile utilizzare espressioni regolari.

Vedere in azione:

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

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

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

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

Lo strumento che mi ha soddisfatto è ReNamer . Supporta anche il salvataggio delle regole di rinominazione, che mi è stato utile, dato che molte volte faccio le stesse rinominazioni.

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

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

Ho usato Free Commander Portable (freeware) per questo a buon effetto:

  1. 1. Selezionare o Navigare ai file o alle directory per rinominare
  2. Selezionare o Navigare ai file o alle directory per rinominare
  3. Premere
4
4
4
2013-01-03 10:47:45 +0000

Per utenti e sviluppatori avanzati, suggerirei RegexRenamer .

Pro’s:

  • IU molto semplice;
  • Espressioni regolari che gli sviluppatori conoscono bene;
  • GPLv2;

Con’s:

  • Non è una riga di comando! :)
3
Advertisement
3
3
2009-08-23 06:16:40 +0000

Ecco una soluzione command-line — un programma Java che ho scritto appositamente per facilitare il lavoro con i “pattern” nei nomi dei file. E’ gratuito e open source, quindi sentitevi liberi di modificarlo:

RenameWand http://renamewand.sourceforge. net/ &003

Alcuni esempi di utilizzo rilevanti:

Lasciare tutto prima del "-" nel nome del file:

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

Preporre un numero di 3 cifre al nome del file, ordinando per l'ultimo tempo modificato:

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

Riorganizzare parti del nome del file, e cambiare 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

Ho scoperto RenPhoric circa un mese fa. Superbo. Ed è free.

Nessuna interfaccia complicata e sono stato rapidamente in grado di rinominare esattamente come volevo. Capacità di espressione regolare. Non ho usato nient'altro da allora.

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

Il modo più semplice sarebbe quello di utilizzare Rename Master .

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

salvarlo in un file batch ed eseguirlo

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

Divertente strumento a riga di comando e nome molto potente, molto veloce ed estremamente facile da usare. “Trova e sostituisci il testo” FART http://fart-it.sourceforge.net/ WORKS GREAT! può rinominare le parole anche nei file txt.

USAGE

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

Lo script multi-name è un'alternativa open source allo strumento Total Commanders Multi Rename tool che si può guidare tramite script. Può utilizzare i plugin TC per informazioni sui metadati. https://code.google.com/p/multi-rename-script/

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

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

  1. veloce
  2. veloce
  3. manipolazione di stringhe
  4. contatori
  5. caratteri jolly
  6. espressioni regolari
  7. sostituzione
  8. conversione di casi
  9. registrazione
  10. registrazione . 9. Simulazione (mostra i risultati senza applicarli)

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

Come @zdan sopra, l'ho fatto da riga di comando (usando “cmd.exe” in Windows). Ci è voluto un po’ di armeggiare per il mio caso particolare, ma una piccola ricerca l'ha risolto.

Come zdan, ho esportato la lista in un file TXT, poi ho usato tokens e delims per rinominare i file di conseguenza. Nel mio caso, ho iniziato con una lista di file così denominata:

name-01-02-2012.csv

Volevo che la porzione di data del file fosse in ordine y/m/d, con la parte “nome” alla fine in modo da leggere così:

2012-01-02-name.csv
``` ```
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

Per fare questo en-masse, ho usato il seguente codice. Si noti che quando si fa in questo modo, si considerano TUTTE le parti del nome del file, compresa l'estensione di “.csv”. Questo mi ha ingannato la prima volta.

&001 &001

Gli tokens sono le “parti” del nome del file, gli delims sono i separatori. Notate che nel mio caso avevo 2 delimitatori (un trattino e un punto).

Personalmente non mi interessa l'app “Bulk Rename”. Come altri hanno detto, l'interfaccia grafica è atroce e non molto intuitiva. Con un po’ di ricerca e una semplice codifica, queste cose possono essere fatte in modo molto efficiente e veloce.

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

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

Supponendo che JREN.BAT sia nella vostra directory corrente, o meglio ancora, da qualche parte all'interno del vostro percorso, allora il vostro compito di rinominare diventa banale.

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

o

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

Ci sono molte opzioni, inclusa l'opzione /S che esegue ricorsivamente il rinominamento sulle sottodirectory.

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

Uso la lavagna per gestire i corsi in un'università. Quando scarico un compito in massa (in Blackboard, clicca in alto nella colonna di valutazione, poi “download del file del compito” Blackboard aggiunge un mucchio di roba extra al nome del file - spesso rendendo il nome del file troppo lungo per essere valido su Windows.

Ecco come sono fatti:

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

E questo è quello che volevo

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

Quindi ho usato l'approccio che @zdan e @gtr1971 consigliavano, aprendo una finestra di comando sulla cartella con i file all'interno (CMD.EXE). Poi eseguire questo comando per inserire tutti i nomi dei file in un documento.

&001 &001

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

Usa questo comando per sostituire il nome del file aggiunto alla lavagna con il solo nome utente e l'estensione del file.

&001 &001

Spero che questo aiuti anche qualcun altro.

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

Ecco un altro semplice programma chiamato File Attribute Changer che si può usare per rinominare i file. È un programma portatile, quindi si può portare su un drive 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

Se hai bisogno di un potere serio e sei disposto a sborsare i soldi… PowerGrep è uno degli strumenti più potenti e versatili sul mercato… con PowerGrep si può rinominare quasi tutto… anche la ricerca binaria e sostituire… è creato da RegEx Guru, Jan Goyvaerts .

Domande correlate

3
19
10
28
16
Advertisement