Come posso trovare e sostituire un carattere nei nomi dei file in Windows 7 usando Explorer?


16

Voglio sostituire tutti i caratteri di sottolineatura ( _) con uno spazio ( ) in un nome file.

Come posso farlo rapidamente, quando ho molti _personaggi da sostituire?


4
Come indicano le risposte, non c'è / non c'è / non c'è modo di farlo in Explorer. È necessario uno script o un rinominatore di file batch.
Shinrai,

Risposte:


20

vbScript dovrebbe farlo per te. Creare un file chiamato "rename_underscores.vbs" contenente quanto segue.

Set objFso = CreateObject("Scripting.FileSystemObject")
Set Folder = objFSO.GetFolder("c:\test\")

For Each File In Folder.Files
    sNewFile = File.Name
    sNewFile = Replace(sNewFile,"_"," ")
    if (sNewFile<>File.Name) then 
        File.Move(File.ParentFolder+"\"+sNewFile)
    end if

Next

Assicurarsi che il nome della cartella sia corretto. (Nell'esempio, ho usato c: \ test) E poi fai doppio clic sul tuo file per fare la ridenominazione.


Lo stesso vale per le cartelle, usando "Folder.SubFolders" invece di "Folder.Files".
Max Hohenegger,

funziona perfettamente, devo solo occuparmi del percorso. +1 grazie
Raj

4

Consiglio di utilizzare uno strumento di terze parti come Bulk Rename Utility . È gratuito e ha un programma di installazione inferiore a 1 MB.


1
Cosa succede se il nome del file è "this_is_a_test.ext"?
seanyboy,

1
Bulk Rename Utility è un'ottima applicazione. È molto versatile e non credo che tu possa ottenere lo stesso con Explorer.
Alex Angelico,

Il comando dos sarebbe un po 'più complicato di così. Ne deriderò uno.
RJFalconer,

3

Questo è all'interno dei regni di un file DOS Bat. Crea un file bat (Nuovo-> File di testo, rinomina l'estensione in .bat), quindi copia le sezioni blu sottostanti in esso.

Lo dividerò in sezioni e spiegherò cosa sta facendo.


Stampa lo stato corrente della directory per un confronto successivo

dir /b

Elenca i file nella directory, quindi per tutti quelli che contengono un carattere di sottolineatura e finiscono in .txt, chiama ProcessFile su di essi.

for %%f in (*_*.txt) do call :ProcessFile %%f
goto :finished

La sintassi "str =% str: x = y%" sostituisce le istanze di x con y. In questo caso, stiamo sostituendo "_" con niente

:ProcessFile
set str=%1
rename %1 %str:_=%
goto :eof

Questo è tutto!

Ora stampa solo ciò che è stato modificato in modo da poter confermare che funziona come previsto;

:finished
echo ----
dir /b

Risultati (non parte del file bat)

baz_ing.txt
big_rawr.foo
foo_bar.txt
multiple_underscores_test.txt
----
bazing.txt
big_rawr.foo
foobar.txt
multipleunderscorestest.txt

2

Come altri hanno già detto, non c'è modo di fare esattamente quello che vuoi senza usare uno script o un file batch. Ad esempio, in PowerShell puoi fare quello che vuoi abbastanza facilmente:

cd "C:\Users\MyName\Documents\MyDirectory"
Dir | Rename-Item –NewName { $_.name –replace "_"," " }

Assicurati di sostituire "C: \ Users \ MyName \ Documents \ MyDirectory" con il percorso della tua directory.

Per maggiori dettagli e altre opzioni, tra cui alcune cose che puoi fare usando solo Explorer, vedi qui: http://www.howtogeek.com/111859/how-to-batch-rename-files-in-windows-4-ways- to-rename-multiple-files /


2

Ecco il mio batch rinominare lo script ruby . Non ho usato altri strumenti di ridenominazione batch, ma penso che il mio script sia molto facile da usare e molto versatile. Ecco il comando per il tuo caso:

ruby bren.rb *_* "_/ "

Ho configurato il mio ambiente Windows in modo tale che bren.rb possa essere eseguito come eseguibile da qualsiasi directory.



1

Questo non risponde esplicitamente alla domanda ('.. in Explorer'), ma ho trovato che il software più utile per farlo era Adobe Bridge (gratuito)

  1. Seleziona tutti i file in Bridge
  2. Tasto destro del mouse> Rinomina batch

Bonus aggiunto: supporta Regex!

Immagine dello schermo

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.