Як знайти та замінити символ у назви файлів у Windows 7 за допомогою Провідника?


16

Я хочу замінити всі символи підкреслення ( _) пробілом ( ) у імені файлу.

Як це зробити швидко, коли у мене є багато _символів, які потрібно замінити?


4
Оскільки відповіді вказують, у Провідника немає / немає способу зробити це. Вам потрібен сценарій або перейменування пакетного файлу.
Shinrai

Відповіді:


20

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) А потім двічі клацніть файл, щоб зробити перейменування.


Зауважте, що те саме працює з папками, використовуючи "Folder.SubFolders" замість "Folder.Files".
Макс Хохенгер

працює чудово, просто потрібно подбати про шлях. +1 спасибі
Радж

4

Я рекомендую використовувати сторонній інструмент, такий як утиліта масового перейменування . Це безкоштовно, і він має інсталятор менше 1 Мб.


1
Що робити, якщо ім'я файлу "this_is_a_test.ext"?
seanyboy

1
Утиліта масового перейменування - ВЕЛИКІ додатки. Це дуже універсально, і я не думаю, що ви можете досягти того ж з Explorer.
Алекс Анжеліко

Команда dos була б трохи складнішою за це. Я знущаюся над одним.
RJFalconer

3

Це в царині файлу 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

2

Як уже згадували інші, немає способу зробити саме те, що ви хочете, не використовуючи сценарій або пакетний файл. Наприклад, в 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- перейменувати кілька файлів /


2

Ось мій сценарій пакетного перейменування ruby ​​script . Я не використовував інших інструментів пакетного перейменування, але думаю, що мій сценарій дуже простий у використанні та дуже універсальний. Ось команда для вашого випадку:

ruby bren.rb *_* "_/ "

Я налаштував своє середовище Windows таким чином, що bren.rb може бути виконаний як виконуваний файл з будь-якого каталогу.



1

Це прямо не відповідає на питання (".. в Провіднику"), але я знайшов найкориснішим програмним забезпеченням для цього було Adobe Bridge (Безкоштовно)

  1. Виберіть усі файли в Bridge
  2. Клацніть правою кнопкою миші> Перейменувати пакет

Доданий бонус: Підтримує Regex!

Екранний постріл

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.