Windows rinominare il nome file centrale tramite CLI?


13

File originali

File 15 - Example.txt
File 2 - Example.txt
File 22 - Example.txt
File 3 - Example.txt
File 4 - Example.txt
File 5 - Example.txt

Uscita desiderata

File 15 - Example.txt
File 02 - Example.txt
File 22 - Example.txt
File 03 - Example.txt
File 04 - Example.txt
File 05 - Example.txt

Il singolo file può essere rinominato facilmente con ren.

ren "File 2 - Example.txt" "File 02 - Example.txt"

Sarebbe possibile rinominarlo in blocco con Windows reno uno renamestrumento?


1
Nice Utility gratuita per semplificare questo tipo di attività .... bulkrenameutility.co.uk/Main_Intro.php
Moab

Sono d'accordo. Posso nominare molte soluzioni basate sulla GUI per questo, e chiedermi perché l'insistenza sulla CLI
Mawg dice di ripristinare Monica

@Mawg, puoi fare script con quegli strumenti della GUI?
Sabrina,

Potrei - usando AutoIt - ma probabilmente lo consiglierei contro :-) Mi chiedevo solo se ci fosse un duro requisito per la CLI, e ora sembra che ci sia. Grazie per il chiarimento
Mawg dice di ripristinare Monica il

Risposte:


13

Sarebbe possibile rinominarlo in blocco con lo strumento ren o rename di Windows?

Sì, ma richiede un file batch.

test.cmd:

@echo off
setlocal EnableDelayedExpansion
for /f "tokens=1,2,3,4" %%i in ('dir /b *Example.txt') do (
  rem pad 2nd token with leading zero
  set _num=0%%j
  set _num=!_num:~-2!
  ren "%%i %%j %%k %%l" "%%i !_num! %%k %%l"
  )
endlocal

esempio:

> dir *Example.txt
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test\test

03/01/2019  11:30                 0 File 15 - Example.txt
03/01/2019  11:30                 0 File 2 - Example.txt
03/01/2019  11:30                 0 File 22 - Example.txt
03/01/2019  11:30                 0 File 3 - Example.txt
03/01/2019  11:30                 0 File 4 - Example.txt
03/01/2019  11:30                 0 File 5 - Example.txt
               6 File(s)              0 bytes
               0 Dir(s)  1,075,134,230,528 bytes free

> ..\test

> dir
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test\test

03/01/2019  11:54    <DIR>          .
03/01/2019  11:54    <DIR>          ..
03/01/2019  11:30                 0 File 02 - Example.txt
03/01/2019  11:30                 0 File 03 - Example.txt
03/01/2019  11:30                 0 File 04 - Example.txt
03/01/2019  11:30                 0 File 05 - Example.txt
03/01/2019  11:30                 0 File 15 - Example.txt
03/01/2019  11:30                 0 File 22 - Example.txt
               6 File(s)              0 bytes
               2 Dir(s)  1,075,134,230,528 bytes free

Ulteriori letture


17

Questo liner One PowerShell espande tutti i numeri nel nome del file in due posizioni .PadLeft(2,'0'):
(e lascia intatti i numeri con più posizioni)

Get-ChildItem *[0-9]*.txt|Rename-Item -NewName {([regex]::Replace($_.BaseName,'\d+',{$args[0].Value.PadLeft(2,'0')}))+$_.Extension}

per essere in argomento, avvolto in una riga cmd / file batch:

Powershell -Nop -C "Get-ChildItem *[0-9]*.txt|Rename-Item -NewName {([regex]::Replace($_.BaseName,'\d+',{$args[0].Value.PadLeft(2,'0')}))+$_.Extension}"

Per essere al sicuro prima di eseguire i comandi, aggiungi uno dei due

  • -Confirm che chiede prima di fare una ridenominazione
  • -WhatIfche elenca tutti i nomi che verrebbe eseguito senza il parametro

proprio di fronte all'ultimo "


3

Modifica: ho appena notato che questa domanda riguarda in particolare la ridenominazione dalla riga di comando, quindi non risponde direttamente alla domanda ... Per ora la terrò, sperando che possa essere utile per gli altri.


Il file manager Total Commander ha un eccellente strumento per rinominare in blocco. Include molte funzionalità, tra cui l'anteprima della ridenominazione, le diverse maschere di ridenominazione, le espressioni regolari, la ridenominazione dei file nella gerarchia dell'intera cartella e molto altro. Allo stesso tempo, è abbastanza facile da usare.

Ecco uno screenshot per dimostrarne l'utilizzo:

Esempio di rinominazione multipla di Total Commander

Passo dopo passo:

  1. Scarica ed esegui Total Commander.
  2. Attiva la cartella con i file da rinominare.
  3. Contrassegna i file da rinominare:
    • Opzione 1 - Ctrl+ Aper contrassegnare tutti i file nella cartella.
    • Opzione 2: contrassegnare i file uno per uno, usando il Spacetasto o il tasto destro del mouse.
    • Opzione 3 - Apri "Trova file" ( Alt+ F7), digita *.txtla casella "Cerca", fai clic su "Avvia ricerca", premi "Feed to listbox", quindi contrassegna i file con Ctrl+ A. Utilizzare questa tecnica se si desidera rinominare i file anche nelle cartelle interne.
  4. Premi Ctrl+ Mper aprire lo strumento Rinomina più.
  5. Impostare i valori desiderati nelle caselle "Cerca" e "Sostituisci con". Se si utilizza un'espressione regolare, selezionare la casella RegEx.
  6. Premi "Inizia!".

-2

ren *.bat *.txtlavorerà per rinominare le estensioni su tutti i file corrispondenti mantenendo l'altra parte del nome. Non potresti abusare di questo per eseguire una sequenza di rencomandi?

  • ren "File *" "File 0*"
  • ren "File 00*" "File 0*"
  • (trattare con resti pendenti come File 022 - Example.txt

1
Questo NON è utile, hai controllato cosa farà il tuo comando? 2-> 0, 22-> 02, 15-> 05.
LotPings

No, non ho un sistema operativo Windows, quindi non l'ho provato. Ma ho ricordato per anni che REN può farlo. Volevo dare un suggerimento comunque.
Douglas tenuto il
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.