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

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

Ответить
Настройки темы
CMD/BAT - [решено] Переименовать файлы одного типа также как файлы другого типа

Новый участник


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

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


For n от 1 и до конца каталога берем n-й файл ass и переименовываем так же как n-й файл mkv
Но вот как это сделать в батнике так и не придумал.

Отправлено: 12:13, 04-09-2021

 

Ветеран


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

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


Цитата Iska:
а PowerShell »
а тут куда как все проще
Код: Выделить весь код
$dir = 'C:\d'

$ass = gci $dir *.ass
$mkv = gci $dir *.mkv

for ($n=0; $n -lt $ass.Count; $n++) {
  rni "$($mkv.FullName[$n])" "$($ass.BaseName[$n]+$mkv.Extension[$n])"
}
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:17, 05-09-2021 | #11



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

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


Ветеран


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

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


alpap, в коде не учтено:
  • различное количество групп файлов *.ass и *.mkv;
  • в выборку попадают и файлы с расширениями, начинающимися на «ass» и «mkv» (привет коротким именам формата 8.3);
  • квадратные скобки в именах файлов — опять беда-печаль.
. Из плюсов — нет проблемы с возможной двойной обработкой одного и того же файла после переименования (поскольку весь перечень искомых файлов получается целиком изначально).

P.S. Переименование нужно в обратную сторону — *.ass файлов на основе *.mkv имён .
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:02, 05-09-2021 | #12


Ветеран


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

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


Цитата Iska:
квадратные скобки в именах файлов »
нет, здесь это никак не влияет на работу
Цитата Iska:
различное количество групп файлов *.ass и *.mkv »
будет выдана ошибка (при этом переименование произойдет) только в случае если файлов которые надо переименовать меньше чем тех из которых берем имя, если наоборот больше - переименуется сколько есть.
Цитата Iska:
в выборку попадают и ...»
это легко отрегулировать если надо, но редко требуется, вряд ли для этой задачи

Отправлено: 19:26, 05-09-2021 | #13


Ветеран


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

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


Цитата alpap:
нет, здесь это никак не влияет на работу »
Скрытый текст
Код: Выделить весь код
╔══════════════ C:\Мои проекты\0351\0004 ════════╤═════╗
║и             Имя               │Размер│  Дата  │Время║
║┐..                             │ Вверх│05.09.21│20:29║
║ 162[52555]736600            ass│     0│04.09.21│13:41║
║҉16247309700360              mkv│     0│04.09.21│13:40║
║҉16252303845020              mkv│     0│04.09.21│13:40║
║҉16252328137960              mkv│     0│04.09.21│13:40║
║ 16252540547300              ass│     0│04.09.21│13:41║
║                                │      │        │     ║
║                                │      │        │     ║

Код: Выделить весь код
$dir = 'C:\Мои проекты\0351\0004'

$ass = gci $dir *.ass
$mkv = gci $dir *.mkv

for ($n=0; $n -lt $ass.Count; $n++) {
  rni "$($ass.FullName[$n])" "$($mkv.BaseName[$n]+$ass.Extension[$n])"
}
Цитата:
Код: Выделить весь код
rni : Cannot rename because item at 'C:\Мои проекты\0351\0004\162[52555]736600.ass' does not exist.
At line:7 char:3
+   rni "$($ass.FullName[$n])" "$($mkv.BaseName[$n]+$ass.Extension[$n]) ...
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Rename-Item], PSInvalidOperationException
    + FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.RenameItemCommand
Цитата alpap:
будет выдана ошибка (при этом переименование произойдет) только в случае если файлов которые надо переименовать меньше чем тех из которых берем имя, »
Я именно про это.

Цитата alpap:
это легко отрегулировать если надо, но редко требуется, вряд ли для этой задачи »
Ну, я ж про перфекционизьм .

Отправлено: 20:32, 05-09-2021 | #14


Ветеран


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

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


Цитата Iska:
rni : Cannot rename because item at 'C:\Мои проекты\0351\0004\162[52555]736600.ass' does not exist »
а вот это странно
у меня на win 10 pwsh 7.1.4 тут без ошибок
Ваш вариант имен
до
Скрытый текст

Код: Выделить весь код
C:\D
    16247309700360.mkv
    16252303845020.mkv
    16252328137960.mkv
    16252540547300.ass
    162[52555]736600.ass

после
Скрытый текст

Код: Выделить весь код
C:\D
    16247309700360.ass
    16247309700360.mkv
    16252303845020.ass
    16252303845020.mkv
    16252328137960.mkv

---
и наоборот, скобки с "той стороны"
до
Скрытый текст

Код: Выделить весь код
C:\D
    1624[730970]0360.mkv
    16252303845020.mkv
    16252328137960.mkv
    16252540547300.ass
    16252555736600.ass

после
Скрытый текст

Код: Выделить весь код
C:\D
    1624[730970]0360.ass
    1624[730970]0360.mkv
    16252303845020.ass
    16252303845020.mkv
    16252328137960.mkv

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

Отправлено: 13:26, 06-09-2021 | #15


Ветеран


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

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


alpap, возможно это:
Цитата alpap:
pwsh 7.1.4 »
У меня 5.1 на Windows 7 SP1 x64.

Дай-то бог.

Отправлено: 20:32, 06-09-2021 | #16



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Как удалить все файлы одного типа во всех подпапках определенной папки? popt2t Скриптовые языки администрирования Windows 3 16-02-2013 21:03
CMD/BAT - [решено] Как удалить файлы одного типа через командную строку? Raf-9600 Скриптовые языки администрирования Windows 5 01-08-2011 11:02
Разное - [решено] Как открыть файлы типа *.bkf в Windows 7? Nerde Microsoft Windows 7 10 08-07-2010 23:10
Как в домене вин 2003 запретить пользователям сохранять файлы определенного типа Russo Microsoft Windows NT/2000/2003 5 12-02-2009 10:25
как изменить права на файлы только определенного типа Guest Microsoft Windows NT/2000/2003 12 23-03-2004 10:09




 
Переход