Como faço para encontrar e substituir um caractere em nomes de arquivos no Windows 7 usando o Explorer?

14

Eu quero substituir todos os caracteres de sublinhado ( _ ) por um espaço ( ) em um nome de arquivo.

Como posso fazer isso rapidamente, quando tenho muitos caracteres _ para substituir?

    
por Nam G VU 08.10.2010 / 15:02

7 respostas

17

vbScript deve fazer isso por você. Crie um arquivo chamado "rename_underscores.vbs" contendo o seguinte.

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

Verifique se o nome da pasta está correto. (No exemplo, usei c: \ test) Em seguida, clique duas vezes no arquivo para fazer a renomeação.

    
por 08.10.2010 / 15:44
3

Isto está dentro dos reinos de um arquivo dos bat. Crie um arquivo bat (Novo- > Arquivo de texto, renomeie a extensão para .bat) e copie as seções azuis abaixo para ele.

Vou dividir em seções e explicar o que está fazendo.

Imprime o estado atual do diretório para comparação posterior

dir /b

Relacione os arquivos no diretório e, em seguida, todos os que contêm um sublinhado e final em .txt, chame ProcessFile neles.

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

A sintaxe "str =% str: x = y%" substitui instâncias de x por y. Neste caso, estamos substituindo "_" por nada

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

É isso aí!

Agora apenas imprime o que foi alterado para que possamos confirmar se está funcionando como esperado;

:finished
echo ----
dir /b

Resultados (não faz parte do arquivo bat)

baz_ing.txt
big_rawr.foo
foo_bar.txt
multiple_underscores_test.txt
----
bazing.txt
big_rawr.foo
foobar.txt
multipleunderscorestest.txt
    
por 21.11.2010 / 14:01
2

Eu recomendo usar uma ferramenta de terceiros, como Bulk Rename Utility . É gratuito e tem um instalador com menos de 1 MB.

    
por 08.10.2010 / 15:32
2

Aqui está meu lote renomeia o script ruby . Eu não usei outras ferramentas de renomeação em lote, mas acho que meu script é muito fácil de usar e muito versátil. Aqui está o comando para o seu caso:

ruby bren.rb *_* "_/ "

Eu configurei meu ambiente do Windows de maneira que bren.rb possa ser executado como um executável em qualquer diretório.

    
por 26.04.2014 / 00:10
1

Ferramenta de renomeamento baseada em Windows, a mais poderosa que existe e gratuita. link

    
por 01.12.2010 / 17:58
1

Como outros já mencionaram, não há como fazer exatamente o que você deseja sem usar um script ou arquivo em lotes. Por exemplo, no PowerShell você pode fazer o que quiser com facilidade:

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

Apenas certifique-se de substituir "C: \ Users \ MyName \ Documents \ MyDirectory" pelo caminho para seu diretório.

Para mais detalhes e outras opções, incluindo algumas coisas que você pode fazer usando apenas o Explorer, veja aqui: link

    
por 06.01.2016 / 19:13
1

Isso não responde explicitamente à pergunta ('.. no Explorer'), mas descobri que o software mais útil para isso era Adobe Bridge (gratuito)

  1. Selecionar todos os arquivos no Bridge
  2. Clique com o botão direito > Renomear em lote

Bônus adicionado: Suporta Regex!

    
por 25.05.2017 / 02:03