Я хочу заменить все символы подчеркивания ( _
) на пробел ( ) в имени файла.
Как я могу сделать это быстро, когда мне нужно _
заменить много символов?
Я хочу заменить все символы подчеркивания ( _
) на пробел ( ) в имени файла.
Как я могу сделать это быстро, когда мне нужно _
заменить много символов?
Ответы:
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) И затем дважды щелкните ваш файл, чтобы сделать переименование.
Я рекомендую использовать сторонние инструменты, такие как Bulk Rename Utility . Это бесплатно и имеет установщик менее 1 МБ.
Это находится в пределах доску файл летучей мыши. Создайте файл 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
Как уже упоминали другие, нет способа сделать именно то, что вы хотите, без использования скрипта или пакетного файла. Например, в 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 bren.rb *_* "_/ "
Я настроил свою среду Windows таким образом, чтобы bren.rb мог выполняться как исполняемый файл из любого каталога.
Инструмент переименования на основе Windows, самый мощный и бесплатный. http://www3.telus.net/pfrank/
Это не дает четкого ответа на вопрос («.. в Проводнике»), но я нашел, что самым полезным программным обеспечением для этого был Adobe Bridge (Free)
Дополнительный бонус: поддерживает регулярные выражения!