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 ?
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 ?
Yanıtlar:
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.
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.
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
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 /
İş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.
Windows tabanlı yeniden adlandırma aracı, en güçlü olanıdır ve ücretsizdir. http://www3.telus.net/pfrank/
Bu soruya açıkça cevap vermiyor ('.. Explorer'da'), ancak bunu yapmak için en yararlı yazılımı Adobe Bridge (Ücretsiz) olarak buldum
Ek bonus: Regex'i destekler!