15

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

Как я могу сделать это быстро, когда мне нужно заменить много символов _ ?

8 ответов8

18

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) И затем дважды щелкните ваш файл, чтобы сделать переименование.

3

Я рекомендую использовать сторонние инструменты, такие как Bulk Rename Utility. Это бесплатно и имеет установщик менее 1 МБ.

3

Это находится в пределах доску файл летучей мыши. Создайте файл bat (New-> Text file, переименуйте расширение в .bat), затем скопируйте в него синие разделы ниже.

Я разделю его на разделы и объясню, что он делает.


Распечатайте текущее состояние каталога для сравнения позже

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

Вот мой пакетный сценарий переименования рубинов. Я не использовал другие инструменты пакетного переименования, но я думаю, что мой скрипт очень прост в использовании и универсален. Вот команда для вашего случая:

ruby bren.rb *_* "_/ "

Я настроил свою среду Windows таким образом, чтобы bren.rb мог выполняться как исполняемый файл из любого каталога.

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- к переименованию многодисковых файлов /

1

Средство переименования на базе Windows, самое мощное и бесплатное. http://www3.telus.net/pfrank/

1

Это не дает четкого ответа на вопрос («.. в Проводнике»), но я нашел, что наиболее полезным программным обеспечением для этого был Adobe Bridge (Free)

  1. Выбрать все файлы в Bridge
  2. Щелкните правой кнопкой мыши> Пакетное переименование.

Дополнительный бонус: поддерживает регулярные выражения!

Скриншот

0

для Windows10 вы можете использовать приложение переименования файлов от Microsoft:https://www.microsoft.com/en-us/p/file-renamer/9nblggh68201?activetab=pivot

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .