Имена папок как у вложенных одиночных файлов заданного типа

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

Ответить
xrRender
Сообщения: 2
Зарегистрирован: Сб июн 23, 2018 15:57

Имена папок как у вложенных одиночных файлов заданного типа

Сообщение xrRender »

Доброго времени суток долго гуглив решил написать о своей проблеме тут :(
В каталоге есть 1780 папок с неправильными именами но в каждой папке есть файл с расширением *.map которое имеет правильное имя! Как мне можно с помощью батника или коммандера переименовать все эти папки в правильное имя из файла?

[mod="Avada"]Слишком общий прежний заголовок заменён более конкретным.[/mod]
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Код: Выделить всё

'=================================== VBS ===================================
' Дать папкам активного каталога имена своих одиночных файлов заданного типа
' Условие:  путь запуска — пустой
' Параметр: <расширение одиночного файла>
' Ключ /base оставляет только базовое имя
'===========================================================================
Set ShA = CreateObject("Shell.Application")
Set FSO = CreateObject("Scripting.FileSystemObject")
If WSH.Arguments.Named.Exists("base") Then Pr = "Bas" Else Pr = "Fil"
For Each Fd In FSO.GetFolder(FSO.GetAbsolutePathName("")).SubFolders
  Set Items = ShA.NameSpace(Fd.Path).Items
  Items.Filter 8384, "*." & WSH.Arguments(0)
  If Items.Count = 1 Then Execute "Fd.Name="&_
  "FSO.Get" & Pr & "eName(Items.Item(0).Path)"
Next
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
xrRender
Сообщения: 2
Зарегистрирован: Сб июн 23, 2018 15:57

Сообщение xrRender »

Flasher
Спасибо огромное :)
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Если пользоваться средствами самого TC, то можно попробовать такой способ.
1. Отсортировать содержимое панели по имени (Ctrl+F3), найти (Alt+F7) файлы *.map, вывести их на панель, выделить и сКопировать имена файлов в буфер.
2. Выделить папки и в инструменте группового переименования (Ctrl+M) использовать пункт Редактировать имена… из контекстного меню, вызываемого по F10 или мышкой. Вместо старых имён папок надо вставить в редактор строки из буфера (Ctrl+V), сохранить новые имена и нажать кнопку Выполнить. Если расширение .map в именах папок не нужно, то перед Выполнить надо вписать .map в поле Найти: (в простейшем случае).
Разумеется, должно соблюдаться требование, что файлов c расширением map в каждой папке должно быть строго по одному.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Безотносительно того, в каком разделе находимся, и зачем делать столько лишних движений, нижнее "Разумеется"-требование тут уже по сути мимо сабжа (должно быть учтено в решении).
sa писал(а):перед Выполнить надо вписать .map в поле Найти: (в простейшем случае).
Но уход от простейшего к верному был бы всяко безопаснее: \.map$ ([E], Рег.выраж.)
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ответить