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.