Я хочу замінити всі символи підкреслення ( _
) пробілом ( ) у імені файлу.
Як це зробити швидко, коли у мене є багато _
символів, які потрібно замінити?
Я хочу замінити всі символи підкреслення ( _
) пробілом ( ) у імені файлу.
Як це зробити швидко, коли у мене є багато _
символів, які потрібно замінити?
Відповіді:
vbScript повинен зробити це за вас. Створіть файл під назвою "rename_underscores.vbs", що містить таке.
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
Переконайтесь, що ім'я папки правильне. (У прикладі я використав c: \ test) А потім двічі клацніть файл, щоб зробити перейменування.
Я рекомендую використовувати сторонній інструмент, такий як утиліта масового перейменування . Це безкоштовно, і він має інсталятор менше 1 Мб.
Це в царині файлу dos bat. Створіть bat-файл (Новий-> Текстовий файл, перейменуйте розширення на .bat), а потім скопіюйте в нього сині розділи нижче.
Я розділю його на розділи і поясню, що це робить.
Пізніше надрукуйте поточний стан каталогу для comparasson
dir /b
Перерахуйте файли в каталозі, а потім для всіх, що містять підкреслення і закінчуються .txt, викличте ProcessFile на них.
for %%f in (*_*.txt) do call :ProcessFile %%f
goto :finished
Синтаксис "str =% str: x = y%" замінює екземпляри x на y. У цьому випадку ми замінюємо "_" нічим
:ProcessFile
set str=%1
rename %1 %str:_=%
goto :eof
Це воно!
Тепер він просто друкує те, що було змінено, і ми можемо підтвердити, що він працює так, як очікувалося;
:finished
echo ----
dir /b
Результати (не частина файлу bat)
baz_ing.txt
big_rawr.foo
foo_bar.txt
multiple_underscores_test.txt
----
bazing.txt
big_rawr.foo
foobar.txt
multipleunderscorestest.txt
Як уже згадували інші, немає способу зробити саме те, що ви хочете, не використовуючи сценарій або пакетний файл. Наприклад, в PowerShell ви можете легко робити те, що хочете:
cd "C:\Users\MyName\Documents\MyDirectory"
Dir | Rename-Item –NewName { $_.name –replace "_"," " }
Просто не забудьте замінити "C: \ Users \ MyName \ Documents \ MyDirectory" на шлях до вашого каталогу.
Більш детально та інші параметри, включаючи деякі речі, які можна виконати за допомогою просто Explorer, дивіться тут: http://www.howtogeek.com/111859/how-to-batch-rename-files-in-windows-4-ways- перейменувати кілька файлів /
Ось мій сценарій пакетного перейменування ruby script . Я не використовував інших інструментів пакетного перейменування, але думаю, що мій сценарій дуже простий у використанні та дуже універсальний. Ось команда для вашого випадку:
ruby bren.rb *_* "_/ "
Я налаштував своє середовище Windows таким чином, що bren.rb може бути виконаний як виконуваний файл з будь-якого каталогу.
Інструмент перейменування на основі Windows, найпотужніший там, і він безкоштовний. http://www3.telus.net/pfrank/
Це прямо не відповідає на питання (".. в Провіднику"), але я знайшов найкориснішим програмним забезпеченням для цього було Adobe Bridge (Безкоштовно)
Доданий бонус: Підтримує Regex!