Modo semplice per rinominare tutti i file in una directory in Windows [chiuso]


9

C'è un modo semplice per rinominare tutti i file in una directory? PowerShell è la strada da percorrere?

Vorrei andare da questo:

c:\family_pics\
   img123.jpg
   img124.jpg

a questo:

c:\family_pics\ 
   family_pics_1.jpg 
   family_pics_2.jpg

Idealmente, vorrei eseguire uno script in una directory che rinominasse tutti i file in base al nome della directory corrente preservando l'estensione e percorresse l'albero della directory in modo ricorsivo.

Risposte:


16

Sulla base del fatto che tutto può essere fatto in una riga di PowerShell (così come tutto può essere fatto anche in 1 riga di Perl), ecco il codice PS per una singola directory.

$i=0; get-childitem $dirname | foreach-object {

       rename-item "$dirname\$_" $("{0}_{1}{2}" -f $dirname, ++$i, $_.Extension)
}

Per farlo in modo ricorsivo, dovresti racchiudere quanto sopra in una funzione e quindi chiamarlo su ogni directory nella tua struttura. Puoi anche sostituire la stringa di formato con qualcosa di un po 'più sofisticato se devi usare regex.


10

Questo è un po 'confuso, ma l'ho fatto per circa 12 anni e sono abbastanza veloce:

  • Aprire un prompt dei comandi in c: \ family_pics e digitare dir >> dir.xls
  • Apri il file dir.xls in Excel
  • Evidenzia la prima colonna, seleziona "Testo nelle colonne" e aggiungi interruzioni di colonna sui caratteri dello spazio (ignorando i duplicati)
  • Ora hai una bella tabella con i nomi dei file, le dimensioni dei file, ecc. Attuali
  • Aggiungi una nuova colonna "ren" prima del nome file
  • Aggiungi una nuova colonna dopo il nome del file e usa qualunque funzione Excel desideri generare il nuovo nome. Nel tuo caso, se digiti i primi due nomi di file e fai doppio clic sull'angolo in basso a destra della cella, Excel rileverà automagicamente il modello e genererà i nomi rimanenti.
  • Salva come ren.bat
  • Esegui il file batch appena creato e rinominerà tutte le tue directory

Sebbene possa non essere immediatamente ovvio, Excel è molto adatto a questo tipo di attività, poiché è possibile utilizzare qualsiasi tipo di formula desiderata per generare i nuovi file, utilizzando input dai file esistenti (data / ora, nome file, dimensione, ecc. ).


Excel è il miglior generatore di codice / script che conosca.
GvS

3

Anche se puoi fare cose con un file batch, ho scoperto che è meglio un maggiore controllo, opzioni, ecc. E un indizio visivo di ciò che sta per accadere.

C'è uno strumento gratuito chiamato CKRename. Il sito dell'autore originale sembra essere scomparso, ma l'app è perfettamente funzionante e abbastanza popolare (lo uso da 8 anni). Scarica CKRename

Ecco uno screenshot di esso in azione inserisci qui la descrizione dell'immagine


1

Puoi semplicemente evidenziare tutti quelli che desideri in Explorer, quindi fare clic con il tasto destro sul primo e rinominarlo e Windows li rinominerà tutti per te con la stessa convenzione di denominazione.


Ho appena provato a partire da fileA.m, fileB.m, ecc. Istead di fileA_001.m, fileB_002.m, invece ho ottenuto fileA_001.m, fileA_001 (1) .m, fileA_001 (2) .m, ecc.
Jacobsee

1

ReNamer: http://www.den4b.com/

Vedi anche: Come rinominare parte di un nome file da una selezione di file in Windows?

Rilascia la cartella con le immagini in ReNamer (le sottocartelle verranno aggiunte in modo ricorsivo per impostazione predefinita). Fare clic sulla colonna Nome per ordinare per nome file se si desidera mantenere l'ordine sequenziale. Il meta tag speciale ti permetterà di usare il nome della cartella principale per rinominare. Utilizzare le seguenti regole di ridenominazione:

  1. Elimina dalla posizione 1 fino alla fine (salta l'estensione)
  2. Inserisci ": File_FolderName: _" come prefisso (ignora estensione)
  3. Serializza Incrementale da 1 passaggio 1 ripetizione 1 come Suffisso (salta estensione)

inserisci qui la descrizione dell'immagine


+1 rinominare è stato semplicemente fantastico!
Chris Marisic,



0

questo rimuove gli ultimi quattro caratteri (di solito l'estensione)

dir *.jpg | % { ren $_.Name $_.Name.Substring(0,$_.Name.Length-4) }

Potrebbe essere necessario adattare quanto sopra per gestire gli spazi o i requisiti specifici di ridenominazione

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.