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

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

Ответить
Настройки темы
Любой язык - [решено] Переименование файлов массово

Ветеран


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

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


Здравствуйте, решение нужно на bat или powershell.
Есть каталог (в скрипте я должен буду указать до него путь), В этом каталоге есть другие папки … и в этих других папках есть различные файлы … необходимо переименовать эти файлы (папки переименовывать не нужно, только файлы).... Нужно переименовать по такому шаблону
Код: Выделить весь код
zzномер
Где номер, это пятизначный номер, он будет идти по порядку, начиная с 00001
например файлы в папке:
Код: Выделить весь код
jadshfjshdfjsd.avi
jbf.mp4
zdsjfkjdsfsd.mp4
После применения скрипта должно получиться так:
Код: Выделить весь код
zz00001.avi
zz00002.mp4
zz00003.mp4

Отправлено: 07:25, 08-11-2024

 

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

fascinating rhythm


Moderator


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

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


Нумерация сквозная или в каждой папке начинается заново?

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


Отправлено: 10:10, 08-11-2024 | #2



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

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


Ветеран


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

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


DJ Mogarych, а это без разницы

Отправлено: 10:31, 08-11-2024 | #3


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

fascinating rhythm


Moderator


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

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


Powershell v5 и новее

Сквозная нумерация:
Код: Выделить весь код
$c = 1
dir c:\temp -Recurse -File |% {
    $_ |Rename-Item -NewName "zz$($c.ToString("00000"))$($_.Extension)" -WhatIf
    $c++
}
Нумерация в каждой папке начинается заново:
Код: Выделить весь код
dir c:\temp -Recurse -Directory |% {
    $c = 1
    dir $_.FullName -File |% {
        $_ |Rename-Item -NewName "zz$($c.ToString("00000"))$($_.Extension)" -WhatIf
        $c++
    }
}
Уберите -WhatIf, чтобы с вывода статистики переключить на реальные действия.

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

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

Отправлено: 11:50, 08-11-2024 | #4


Ветеран


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

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


DJ Mogarych, спасибо, выбрал второй вариант.. боялся, что возможно будет конфликт с переименованием, из-за того, что такое имя уже имеется (потому что скрипт запускается не один раз.. файлы добавляются новые, но присутствуют и старые, на которых скрипт уже отработал.. т.е. при запуске скрипта могут содержаться файлы с именами zz00001 (и подобными)), но никаких конфликтов нет, все переименовывается успешно

Отправлено: 17:46, 08-11-2024 | #5



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Переименование файлов gremlintv2 Скриптовые языки администрирования Windows 3 27-06-2016 23:42
CMD/BAT - Переименование файлов Verilog Скриптовые языки администрирования Windows 4 10-12-2014 14:55
Переименование файлов B1010 Видео и аудио: обработка и кодирование 0 28-09-2014 11:38
переименование файлов mask Программирование и базы данных 6 20-05-2003 00:53
Переименование файлов Pavelz Microsoft Windows NT/2000/2003 7 24-01-2003 10:32




 
Переход