Risposte:
for %a in (*) do ren "%a" "00_%a"
Appunti:
for
come sopra non è consigliato.Utilizzare quanto segue in una cmd
shell:
for /f "tokens=*" %a in ('dir /b') do ren "%a" "00_%a"
In un file batch (sostituisci %
con %%
):
for /f "tokens=*" %%a in ('dir /b') do ren "%%a" "00_%%a"
Nota:
È fondamentale che tu usi
FOR /F
e non il sempliceFOR
.I
FOR /F
raccoglie l'intero risultato delDIR
comando prima che inizi iterazione, mentre la sempliceFOR
inizia iterare dopo il buffer interno è pieno, che aggiunge un rischio di rinominare lo stesso file più volte.
come consigliato da dbenham nella sua risposta per aggiungere "testo" alla fine di più nomi di file :
Per eseguire questo ciclo For su cartelle (directory) anziché file, è sufficiente includere l' /D
opzione.
for /D %a in (*) do ren "%a" "00_%a"
Da for /?
:
FOR / D% variabile IN (set) comando DO [comando-parametri]
If set contains wildcards, then specifies to match against directory names instead of file names.
ren
funziona su cartelle. La limitazione è che "non è possibile specificare un'unità o un percorso diverso per la destinazione.
Ren
.
for /d
potrebbe anche avere il problema di provare a elaborare i valori più volte (vedi anche la mia risposta).