Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Замена маленькой буквы на заглавную в именах файлов

Ответить
Настройки темы
CMD/BAT - [решено] Замена маленькой буквы на заглавную в именах файлов

Аватара для Nun-Nun

Ветеран


Сообщения: 2183
Благодарности: 294


Конфигурация

Профиль | Отправить PM | Цитировать


Нужен скрипт для следующей задачи: необходимо заменить в именах файлов одну или несколько маленьких букв на заглавные (имена файлов могут быть как схожими, так и разными). Расположение заменяемой буквы от начала имён у всех файлов, как правило, одинаковое, за исключением случая, когда буква (или несколько) находятся в конце. Например, либо у всех - последняя, либо у всех - первая, либо у всех - вторая и третья, либо у всех две последние и т.д.

Пример 1:

исходный вариант:

Иванов.txt
Петров.doc
Сидоров.rtf
Итомуподобных.docx


требуемый результат:

ИваноВ.txt
ПетроВ.doc
СидороВ.rtf
ИтомуподобныХ.docx


или так:

исходный вариант:

иванов.txt
петров.doc
сидоров.rtf
итомуподобных.docx


требуемый результат:

Иванов.txt
Петров.doc
Сидоров.rtf
Итомуподобных.docx


Пример 2:

исходный вариант:

Ивановам.txt
Петровод.doc
Сидоровтс.rtf
Итомуподобныхов.docx


требуемый результат:

ИвановАМ.txt
ПетровОД.doc
СидоровТС.rtf
ИтомуподобныхОВ.docx


или так:

исходный вариант:

17_амиванов.txt
14_одпетров.doc
30_тссидоров.rtf
65_овитомуподобных.docx


требуемый результат:

17_АМИванов.txt
14_ОДПетров.doc
30_ТССидоров.rtf
65_ОВИтомуподобных.docx


Пробовал это проделать средствами TC, но подобная замена возможна только для файлов с однотипными именами, для файлов с разными именами такой вариант не проходит.

-------
Свобода не означает вседозволенность.


Отправлено: 11:57, 01-08-2014

 

Ветеран


Сообщения: 1736
Благодарности: 957

Профиль | Цитировать


Цитата registeruser1:
а можно батником? »
Нет, к хорошему быстро привыкаешь, а плохое быстро забываешь.

Отправлено: 14:19, 24-01-2023 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6238
Благодарности: 1360

Профиль | Отправить PM | Цитировать


Foreigner, папки же, там не так просто.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 14:37, 24-01-2023 | #12


Пользователь


Сообщения: 134
Благодарности: 3

Профиль | Отправить PM | Цитировать


Не, папки там в нормальном виде, в самих папках бардак

Отправлено: 14:39, 24-01-2023 | #13


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6238
Благодарности: 1360

Профиль | Отправить PM | Цитировать


Надо поточнее писать тогда, кто такие "они".

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:41, 24-01-2023 | #14


Пользователь


Сообщения: 134
Благодарности: 3

Профиль | Отправить PM | Цитировать


Согласен, сорри...

Отправлено: 14:44, 24-01-2023 | #15


Ветеран


Сообщения: 1736
Благодарности: 957

Профиль | Цитировать


Цитата DJ Mogarych:
папки же, там не так просто. »
Я понял, что надо переименовать файлы.

registeruser1,
Кстати, в 5.1 такой вариант не сработает, для 5.1:

Код: Выделить весь код
Get-Childitem D:\Music -Recurse -File | Foreach-Object {

    Rename-Item $_ ($_.Name.ToLower() -replace '^.', $_.Name[0].ToString().ToUpper())
}
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:53, 24-01-2023 | #16


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1036
Благодарности: 445

Профиль | Отправить PM | Цитировать


Да, пары функций в powershell не встроили...
Код: Выделить весь код
# 1. Капитализация
function capitalize {
	param ([string]$str)
	$out = (get-culture).textinfo.totitlecase($str)
	return $out
}

# 2. Первая буква строки прописная
function toupperfirst {
	param ([string]$str)
	$out = $str.substring(0,1).toupper() + 
	$str.substring(1,$str.length-1)
	return $out
}

$str = "одна СТРОКА - многО Слов"

capitalize $str
toupperfirst $str.tolower()
а далее вызывать из нужного места...

-------
scio me nihil scire. Ѫ

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:37, 24-01-2023 | #17



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Замена маленькой буквы на заглавную в именах файлов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Замена в имени файлов кириллицы на латиницу VedunO Скриптовые языки администрирования Windows 19 20-01-2019 00:40
Любой язык - копировать файл в каталог с текущей датой и сквозной порядковый номер в именах файлов opensrs Скриптовые языки администрирования Windows 1 29-05-2013 06:45
Как определить, есть ли в именах файлов и папок русские буквы-цифры? truvo Хочу все знать 11 03-10-2010 18:21
Flash - Испорчена информация на флэшке (кракозябры в именах файлов) phonocea Накопители (SSD, HDD, USB Flash) 1 06-08-2010 13:17
Замена буквы системного диска в windows 98 Mixa_myzei Microsoft Windows 95/98/Me (архив) 2 14-04-2010 17:29




 
Переход