Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии - bat, cmd

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

Redos123

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
 Добрый день всем!
 
Нужна помощь. Есть более 500 папок с файлами музыки, каждый исполнитель в отдельной папке.
В каждой папке разное кол-во песен, но часть песен только большими буквами, часть только маленькими и часть нормального вида - первая буква большая а остальные буквы в названии маленькие.
В общем бардак полный.
Хотелось бы привести все к единому знаменателю - первая буква большая а остальные буквы в названии маленькие.
Желательно батником если можно.
Нашел один не совсем подходящий батник в инете, не плохой, показывает результат перед тем как проделать всю операцию, но там нужно сам исполняющий блок команд поменять, я не знаю что там нужно дописать для моей задачи.
 
 
@Echo Off
:: Кодировка файла Кириллица DOS (866)
SetLocal EnableDelayedExpansion
:: Путь к обрабатываемой папке
Set Folder=c:\1
 
:: Список замен
Set preset=а_А б_Б в_В г_Г д_Д е_Е ё_Ё ж_Ж з_З и_И й_Й к_К л_Л м_М н_Н о_О п_П р_Р с_С т_Т у_У ф_Ф х_Х ц_Ц ч_Ч ш_Ш щ_Щ ъ_Ъ ы_Ы ь_Ь э_Э ю_Ю я_Я
:: После проверки слово ECHO удалить
For /F "tokens=* delims=" %%A In ('Dir /S /B /A:-D "%folder%"') Do (
    Call :_case1 "%%~nA"
    Echo Ren "%%A" "!Result!%%~xA"
)
Pause
 
:_case1
:: Замена первого символа в имени файла на заглавный, остальные маленькие
:: Если имя файла соответствует параметрам - пропускаем.
Set Data=%~1
Set Char=%Data:~-1%
For %%I In (%preset%) Do For /F "tokens=1,2 delims=_" %%A In ("%%I") Do If %Char%==%%A Set Char=%%B& GoTo _next1
:_next1
Set Result=%Data:~0,-1%%Char%
GoTo :EOF
 
 
 
Вижу что проблема в этом блоке -
 
 
:_case1
:: Замена первого символа в имени файла на заглавный, остальные маленькие
:: Если имя файла соответствует параметрам - пропускаем.
Set Data=%~1
Set Char=%Data:~-1%
For %%I In (%preset%) Do For /F "tokens=1,2 delims=_" %%A In ("%%I") Do If %Char%==%%A Set Char=%%B& GoTo _next1
:_next1
Set Result=%Data:~0,-1%%Char%
GoTo :EOF
 
 
Если имя файла соответствует параметрам - нужно что бы скрипт пропустил файл.
Все названия файлов на кириллице.
ОС - Win11
 
Помогите пож-ста.

Всего записей: 1 | Зарегистр. 24-01-2023 | Отправлено: 17:41 24-01-2023 | Исправлено: Redos123, 17:44 24-01-2023
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии - bat, cmd


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru