Страница 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.
Так?
Да, и не нужно создавать новую тему, когда
есть, где спросить.