Я хочу заменить все символы подчеркивания (_
) на пробел () в имени файла.
Как я могу сделать это быстро, когда мне нужно заменить много символов _
?
Я хочу заменить все символы подчеркивания (_
) на пробел () в имени файла.
Как я могу сделать это быстро, когда мне нужно заменить много символов _
?
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
Вот мой пакетный сценарий переименования рубинов. Я не использовал другие инструменты пакетного переименования, но я думаю, что мой скрипт очень прост в использовании и универсален. Вот команда для вашего случая:
ruby bren.rb *_* "_/ "
Я настроил свою среду Windows таким образом, чтобы bren.rb мог выполняться как исполняемый файл из любого каталога.
Как уже упоминали другие, нет способа сделать именно то, что вы хотите, без использования скрипта или пакетного файла. Например, в 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- к переименованию многодисковых файлов /
Средство переименования на базе Windows, самое мощное и бесплатное. http://www3.telus.net/pfrank/
Это не дает четкого ответа на вопрос («.. в Проводнике»), но я нашел, что наиболее полезным программным обеспечением для этого был Adobe Bridge (Free)
Дополнительный бонус: поддерживает регулярные выражения!
для Windows10 вы можете использовать приложение переименования файлов от Microsoft:https://www.microsoft.com/en-us/p/file-renamer/9nblggh68201?activetab=pivot