Explorer kullanarak Windows 7'de dosya adlarındaki bir karakteri nasıl bulabilir ve değiştirebilirim?


16

Tüm alt çizgi karakterlerini ( _) bir dosya adında boşluk ( ) ile değiştirmek istiyorum .

_Değiştirilecek çok sayıda karakterim olduğunda bunu nasıl hızlı bir şekilde yapabilirim ?


4
Yanıtların gösterdiği gibi, bunu Explorer'da yapmanın / yapmanın bir yolu yoktur / yoktur. Bir komut dosyasına veya toplu dosya yeniden adlandırıcısına ihtiyacınız var.
Shinrai

Yanıtlar:


20

vbScript bunu sizin için yapmalı. Aşağıdakileri içeren "rename_underscores.vbs" adlı bir dosya oluşturun.

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

Klasör adının doğru olduğundan emin olun. (Örnekte, c: \ test kullandım) Ve sonra yeniden adlandırma yapmak için dosyanızı çift tıklayın.


Aynı şeyin 'Folder.Files' yerine 'Folder.SubFolders' kullanılarak klasörlerle çalıştığını unutmayın.
Max Hohenegger

mükemmel çalışıyor, sadece yolla ilgilenmeniz gerekiyor. +1 teşekkürler
Raj

4

Toplu Yeniden Adlandırma Yardımcı Programı gibi bir üçüncü taraf aracı kullanmanızı öneririm . Ücretsizdir ve 1 MB'den daha az bir yükleyiciye sahiptir.


1
Dosya adı "this_is_a_test.ext" ise ne olur?
seanyboy

1
Toplu Yeniden Adlandırma Yardımcı Programı BÜYÜK bir uygulamadır. Çok yönlü ve Explorer ile aynı şeyi yapabileceğinizi sanmıyorum.
Alex Angelico

Dos komutu bundan biraz daha karmaşık olurdu. Ben bir tane alay edeceğim.
RJFalconer

3

Bu bir dos bat dosyasının alemleri içindedir. Bir yarasa dosyası oluşturun (Yeni-> Metin dosyası, uzantıyı .bat olarak yeniden adlandırın) ve ardından aşağıdaki mavi bölümleri içine kopyalayın.

Bunu bölümlere ayıracağım ve ne yaptığını anlatacağım.


Daha sonra karşılaştırmalar için dizinin geçerli durumunu yazdırın

dir /b

Dizindeki dosyaları listeleyin, ardından alt çizgi içeren ve .txt ile biten tüm dosyalar için ProcessFile'ı çağırın.

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

"Str =% str: x = y%" sözdizimi, x örneklerini y ile değiştirir. Bu durumda, "_" yerine hiçbir şey koymuyoruz

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

Bu kadar!

Şimdi sadece değiştirilenleri basar, böylece beklendiği gibi çalıştığını doğrulayabiliriz;

:finished
echo ----
dir /b

Sonuçlar (Yarasa dosyasının parçası değil)

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

2

Diğerlerinin de belirttiği gibi, bir komut dosyası veya toplu iş dosyası kullanmadan tam olarak istediğinizi yapmanın bir yolu yoktur. Örneğin, PowerShell'de istediğinizi kolayca yapabilirsiniz:

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

Sadece "C: \ Users \ MyName \ Documents \ MyDirectory" dizinini kullandığınızdan emin olun.

Bazı şeylerin dahil daha detaylı ve diğer seçenekler için olabilir sadece Explorer kullanarak yapın buraya bakın: http://www.howtogeek.com/111859/how-to-batch-rename-files-in-windows-4-ways- to-yeniden adlandırma-çoklu-files /


2

İşte benim parti yeniden adlandırmak yakut komut dosyası . Başka toplu yeniden adlandırma araçları kullanmadım ama betiğimin kullanımı çok kolay ve çok yönlü. Davanız için komut şöyledir:

ruby bren.rb *_* "_/ "

Windows ortamımı bren.rb herhangi bir dizinden yürütülebilir olarak çalıştırılabilir şekilde ayarladım.



1

Bu soruya açıkça cevap vermiyor ('.. Explorer'da'), ancak bunu yapmak için en yararlı yazılımı Adobe Bridge (Ücretsiz) olarak buldum

  1. Bridge'deki tüm dosyaları seç
  2. Sağ tıklama> Toplu Yeniden Adlandırma

Ek bonus: Regex'i destekler!

Ekran Görüntüsü

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.