Мне нужен способ переименовать все файлы в папках и подпапках к нижнему регистру.
Я хотел бы знать, существует ли способ сделать тот использующий только окна (XP или 7)
http://www.dostips.com/DtCodeCmdLib.php#Function.toLower дает простую функцию, которую необходимо смочь включать и назвать от пакетного файла.
Поэтому имейте пакетный файл, выполняют итерации по папкам/именам файлов и вызывают эту функцию для генерации строчной версии имени.
Renamer spacetornado является Windows-программой, которая переименовывает массовые суммы файлов в пакетах. Можно искать и заменить текст, удалить определенное число символов, изменить случай, чтобы понизиться, верхний или First Letter Capital, и добавить, что текст к началу или концу (добавляет/предварительно ожидает) каждого имени файла
Из http://windowsitpro.com/articles/index.cfm?articleid=81612:
Только Используя стандартные команды, я написал сценарий LwrCase.bat и LwrCase_Folder.bat, чтобы переименовать имя файла к нижнему регистру или переименовать все имена файлов в папке к нижнему регистру.
Для переименования имени файла к нижнему регистру используйте:
[call] LwrCase FullyQualifiedFileName
Где FullyQualifiedFileName является полностью определенным именем файла, которое будет переименовано.
Для переименования всех имен файлов в каталоге используйте:
[call] LwrCase_Folder FullyQualifiedDirectoryName [/S]
где FullyQualifiedDirectoryName, полностью квалифицируют путь к папке, и/S является дополнительным параметром, который также переименует имена файлов во всех подпапках.
Примечание: LwrCase.bat использует/L переключатель команды DIR, которая возвращает имена нижнего регистра.
LwrCase.bat содержит:
@echo off
if {%1}=={} @echo Syntax: LwrCase FullyQualifiedFileName&goto :EOF
if not exist %1 @echo LwrCase - %1 NOT found.&goto :EOF
setlocal
for /f "Tokens=*" %%a in ('@echo %~a1') do (
set file=%%a
)
if /i "%file:~0,1%" EQU "d" @echo LwrCase - %1 is NOT a file.&endlocal&goto :EOF
for /f "Tokens=*" %%f in ('dir %1 /L /b /a /a-d') do (
Rename %1 "%%f"
)
endlocal
LwrCase_Folder.bat содержит:
@echo off
if {%1}=={} @echo Syntax: LwrCase_Folder FullyQualifiedDirectoryName&goto :EOF
if not exist %1 @echo LwrCase_Folder - %1 NOT found.&goto :EOF
setlocal
for /f "Tokens=*" %%a in ('@echo %~a1') do (
set folder=%%a
)
if /i "%folder:~0,1%" NEQ "d" @echo LwrCase_Folder - %1 is NOT a folder.&endlocal&goto :EOF
pushd %1
set sw=/B /A /A-D
if /i {%2}=={/S} set sw=%sw% %2
for /f "Tokens=*" %%f in ('dir %sw%') do (
call LwrCase "%%f"
)
popd
endlocal
Моей любимой переименовывающей пакетный файл утилитой является WildRename Cylog. Среди многих других функций это может изменить случай имен файлов. Лучшая вещь о WildRename состоит, вероятно в том, что это поддерживает регулярные выражения!
Лучшая программа для того, чтобы сделать это в Windows является Объемной, Переименовывают Утилиту. Это, укомплектовывает инструмент. Можно даже использовать regex для переименования файлов и/или папок. Это также имеет интеграцию оболочки (таким образом, можно выполниться из проводника щелчком правой кнопкой), который очень хорош. Доступные версии на 32 бита и на 64 бита.