Замена в именах знаков подчеркивания на их число

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

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

Ответить
Аватара пользователя
shveicar
Сообщения: 277
Зарегистрирован: Пн апр 18, 2011 01:54
Откуда: Россия Москва

Замена в именах знаков подчеркивания на их число

Сообщение shveicar »

Здравствуйте
Столкнулся - с такой проблемой, имеется множество каталогов и файлов с именами вида

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

__
___
____
_____-INDEX.HTM
и т.д Подскажите как автоматизировать переименование так, что-бы каждый знак _ превращался в цифру, то есть

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

_ ->1
__ -> 2 
и т.д Может есть схема с использованием регулярных выражений? или варианты только в ручную начиная с самых длинных прочерков. Заранее благодарен.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Название темы не соответствует задаче.
shveicar писал(а):каждый знак _ превращался в цифру, то есть
Неверно. Схема подразумевает не "каждый знак в цифру", а совпавшие символы в их кол-во.

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

'================================================
' Замена в именах выделенных папок/файлов
' первых одинаковых символов на их число
' Параметры: %WL <заменяемый символ>
'================================================
With WScript.Arguments
  If .Count = 0 Then WScript.Quit
  List = .Item(0) : Symbol = .Item(1)
End With
With CreateObject("Scripting.FileSystemObject")
  Set TF = .GetFile(List).OpenAsTextStream(1, -1)
  Do Until TF.AtEndOfStream
    F = TF.ReadLine
    If F > vbNullString Then
      FN = .GetFileName(F) : n = 1
      If InStr(FN, Symbol) = 1 Then
        Do While Symbol = Mid(FN, n, 1) : n = n + 1 : Loop
        If .FolderExists(F) Then .GetFolder(F).Name = n - 1 & Mid(FN, n) _
        Else .GetFile(F).Name = n - 1 & Mid(FN, n)
      End If
    End If
  Loop
End With
Последний раз редактировалось Flasher Пн апр 16, 2012 14:34, всего редактировалось 1 раз.
Аватара пользователя
shveicar
Сообщения: 277
Зарегистрирован: Пн апр 18, 2011 01:54
Откуда: Россия Москва

Сообщение shveicar »

Спасибо Flasher
Но что-то не работает, проверил на файлах и на каталогах
безрезультатно, выделяю группу, применяю скрипт - ничего не происходит..
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

15 мин назад уже исправил. Кстати, процесс wscript.exe убить надо.
Аватара пользователя
shveicar
Сообщения: 277
Зарегистрирован: Пн апр 18, 2011 01:54
Откуда: Россия Москва

Сообщение shveicar »

Спасибо, теперь все OK
Кстати, процесс wscript.exe убить надо
У меня, после первого варианта - комп завис... пришлось делать резет.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

shveicar писал(а):У меня, после первого варианта - комп завис..
На будущее: если скрипт с первой попытки ничего не делает или начинаются тормоза, то нужно быстренько открыть диспетчер (например, AceHelper) по хоткею, посмотреть нет ли там процессов Wscript.exe и воспользоваться кнопкой со скриптом для убийства всех процессов WScript. Если процесс один, то можно это делать сразу через диспетчер.

Название темы исправь.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Название темы исправлено. Прежнее название "групповое переименование из кодировки DOS", действительно, не имело к делу никакого отношения.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

г.п.

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

Найти:    _____________|____________|___________|__________|_________|________|_______|______|_____|____|___|__|_

Заменить: 13|12|11|10|9|8|7|6|5|4|3|2|1
Аватара пользователя
shveicar
Сообщения: 277
Зарегистрирован: Пн апр 18, 2011 01:54
Откуда: Россия Москва

Сообщение shveicar »

Tol!k
Это ваши рекомендации?
Serge Yolkin
Сообщения: 664
Зарегистрирован: Сб июл 25, 2009 11:12

Сообщение Serge Yolkin »

shveicar писал(а):Tol!k
Это ваши рекомендации?
Это готовое решение. Проверил. Работает.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

shveicar
г.п. = Меню Файлы > Групповое переименование (Ctrl+M)
Аватара пользователя
shveicar
Сообщения: 277
Зарегистрирован: Пн апр 18, 2011 01:54
Откуда: Россия Москва

Сообщение shveicar »

Спасибо всем за помощь, действительно, можно и так.
Ответить