Страница 2 из 7

Добавлено: Ср авг 31, 2016 11:37
Flasher
BeardFury78 писал(а):но я лично не нашел
Плохо искал.

Добавлено: Ср авг 31, 2016 12:11
Avada
Тема объединена с имеющейся.

Добавлено: Ср авг 31, 2016 13:03
Flasher
BeardFury78
Есть, кстати, такой скрипт без необходимости выделять. Только там нет нулей спереди. Можно попробовать допилить под заданные условия. Правда надо ещё учесть тип сортировки.

Добавлено: Ср авг 31, 2016 14:14
BeardFury78
Flasher
Спасибо за указание нужной темы. Однако первый скрипт переименовывает совсем не так, как мне нужно. Второй скрипт не сработал, выдает ошибку.

Добавлено: Ср авг 31, 2016 15:02
Flasher
BeardFury78
Я в курсе, что не так. Второй тоже не так, в шапке описано как.
Я спрашиваю, если обработка структуры годится, то какой будет тип сортировки?

Добавлено: Ср авг 31, 2016 15:05
BeardFury78
Flasher
Тип сортировки файлов пусть будет по имени в порядке убывания.

Добавлено: Ср авг 31, 2016 18:44
Flasher
BeardFury78
Не стал я заморачиваться с номерными именами. Сделал простой вариант для обычных имён:

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

'=======================================================
' Дописать в имена файлов в структуре активного каталога
' номерной префикс от 0001 до числа фильтрованных файлов
' при включении алфавитной сортировки (по умолч. прямой)

' Условие: путь запуска - пустой

' Параметры (необязательные): <фильтр-список расширений>
'                             <cортировка обратная: 1>
' Примеры: *.jpg;*.jpeg   |   *.* 1
'=======================================================
With WScript.Arguments
  If .Count Then If .Item(0) <> "" Then Filt = .Item(0) Else Filt = "*.*"
  If .Count = 2 Then Sort = .Item(1)
End With : Set ShA = CreateObject("Shell.Application")
Set Lst = CreateObject("System.Collections.ArrayList")
Set FSO = CreateObject("Scripting.FileSystemObject")
CD = FSO.GetAbsolutePathName("")
If CD = FSO.GetParentFolderName(WScript.ScriptFullName) Then WScript.Quit
ForFolder CD : MsgBox "Выполнено!", 4160, " Переименование с нумерацией      "

Sub ForFolder(Path)
  Set Items = ShA.NameSpace(Path).Items
  Items.Filter 73920, Filt
  If Items.Count Then
    For Each F in Items : Lst.Add CStr(F) : Next
    Lst.Sort : If Sort = 1 Then Lst.Reverse
    For Each F in Lst
      i = i + 1 : If Len(i) < 4 Then i = String(4 - Len(i), "0") & i
      N = i & FSO.GetFileName(F)
      FSO.GetFile(Path & "\" & F).Name = N
    Next : Lst.Clear
  End If : Items.Filter 73888, "*"
  For Each Fold in Items : ForFolder Fold.Path : Next
End Sub

Добавлено: Чт сен 01, 2016 09:25
BeardFury78
Flasher
Очень хорошо. А можно еще вариант, но с просто алфавитной сортировкой? Чтобы когда потребуется нумеровать имена в порядке увеличения, использовать другой вариант такого скрипта.

Добавлено: Чт сен 01, 2016 11:13
Flasher
BeardFury78
Добавил параметр.

Добавлено: Чт сен 01, 2016 12:23
BeardFury78
Flasher
Отлично, большое спасибо, пользуюсь этим скриптом.

Выборочное переименование файлов

Добавлено: Пт окт 28, 2016 12:07
r136a8
Добрый день такая задача, нужно переименовать файлы в количестве 1200 шт. Файлы названы от 1 до 1200.
Нужно переименовать вот в таком прядке (set1-1.png, set1-2.png, set1-3.png, set2-1.png .. и т.д.)
Получается каждая группа (set) файлов состоит из троих фото, получается каждая группа из 3х файлов имеет название set1, set2, set3 и т.д.
Внутри каждой группы есть три фото 1,2,3 получается set1-1.png, set1-2.png, set1-3.png, set2-1, set2-2, set2-3, set3-1, set3-2, set3-3 и т.д.)

Возможно ли это сделать и как возможно через другую программу.

Добавлено: Пт окт 28, 2016 14:36
Вахмурка
Ставишь курсор на первый файл, запускаешь скрипт с шагом 3 и выделенное переименовываешь по маске set[С]-1. Они, видимо, попадут в конец списка. Потом то же, но 2 и set[С]-2. Оставшееся set[С]-3. Как-то так.
Не забудь сделать резервную копию!

Добавлено: Пт окт 28, 2016 17:10
r136a8
Получается я сначала переименую все файлы от set1-1 до set365-1 потом от set1-2 до set365-2 и от set1-3 до set365-3
Так?

Добавлено: Пт окт 28, 2016 17:15
Вахмурка
Во-первых, насколько я знаю арифметику, 1200/3=400, а не 365. Во-вторых, выделение не должно касаться уже переименованных файлов. Проще всего их перемещать в другую директорию, хотя можно и Shift+Down

Добавлено: Сб окт 29, 2016 01:16
Flasher
r136a8 писал(а):Файлы названы от 1 до 1200.
Без расширений, просто числа?
Было: 1, 2, 3, 4, 5, 6.
Стало: set1-1.png, set1-2.png, set1-3.png, set2-1.png, set2-2.png, set2-3.png.
Так?

Да, и не нужно создавать новую тему, когда есть, где спросить.