Нет. А как он может быть тот же?Nick писал(а):Тот же вопрос?
Копирование с переименовыванием по счетчику
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Flasher
Я просто не стал копировать сообщение в еще одной теме, а дал ссылку.
Я просто не стал копировать сообщение в еще одной теме, а дал ссылку.
Какие строки нужно исправить, чтобы работал скрипт без "постфикс"?
Nick
Там скрипт для других нужд, у него своя специфика, завязанная на двойных расширениях. А здешний скрипт касается именно того, о чём по логике должна вестись речь. И именно его нужно править. Никаких постфиксов в нём нет.
Там скрипт для других нужд, у него своя специфика, завязанная на двойных расширениях. А здешний скрипт касается именно того, о чём по логике должна вестись речь. И именно его нужно править. Никаких постфиксов в нём нет.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Flasher
Тогда, какие строки нужно исправить в этом скрипте чтобы при наличии файла вида: File_v2.txt получался File_v3.txt и т.п.?
Тогда, какие строки нужно исправить в этом скрипте чтобы при наличии файла вида: File_v2.txt получался File_v3.txt и т.п.?
Flasher
Да, т.е. примерное поведение как и в этом скрипте.
Да, т.е. примерное поведение как и в этом скрипте.
Nick
И всё же.
Если стоим на name, создавать name_№ или name_v№?
А если стоим на файле name№, то что создавать: name№_1 | name№_v1 | name№+1 | name_№+1 | name_v№+1 ?
А если стоим на файле name_№, то как?
И всё же.
Если стоим на name, создавать name_№ или name_v№?
А если стоим на файле name№, то что создавать: name№_1 | name№_v1 | name№+1 | name_№+1 | name_v№+1 ?
А если стоим на файле name_№, то как?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Flasher
Т.е., наверно, лучше сделать ближе к именам файлов, которые и были.
Наверно, надо будет скопировать 2 скрипта и поставить на кнопки (один будет создавать "Name_v№", а другой "Name_№").
В этом случае, наверно, лучше name_v№.Flasher писал(а):Если стоим на name, создавать name_№ или name_v№?
Наверно, лучше name№+1.Flasher писал(а):А если стоим на файле name№
name_№+1.Flasher писал(а):А если стоим на файле name_№
Т.е., наверно, лучше сделать ближе к именам файлов, которые и были.
Наверно, надо будет скопировать 2 скрипта и поставить на кнопки (один будет создавать "Name_v№", а другой "Name_№").
Нравится мне это "наверно". )
Зачем 2 скрипта? Обойдусь параметром.
[cut="Проверяем:"][/cut]
+ пару приблуд:
1) 000№+1.
2) Совпадающее начало вставки с окончанием базового имени будет нивелироваться. Т.е. из MyName.ext при вставке NameIs получится MyNameIs№+1.ext.
Зачем 2 скрипта? Обойдусь параметром.
[cut="Проверяем:"]
Код: Выделить всё
'•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
' Cоздать указанное число копий/пустышек для каждого выбранного элемента
' с добавлением счётчика после базового имени, начиная с последнего номера
' Параметры: %WL "<путь назначения>" <число копий> <вставка до №> <расширение нового файла>
' Если указан 5-й параметр, то создаваться будут пустые элементы
' Примеры: %WL "%P" | %WL "%T" 3 | %WL "%P" 5 _v | %WL "%T" 1 "" txt
' Автор - Flasher ©
'•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
Option Explicit : Dim C, List, Path, Count, Px, Ext, ShA, FSO,_
F, Test, Filt, Ex, BN, Max, i, N, M, Items, Cnt, Ln, x, Item, FN
With WScript.Arguments
C = .Count : If C = 0 Then WScript.Quit
If C = 1 Then MsgBox "Должно быть указано не менее 2-х параметров!", 48 : WScript.Quit
List = .Item(0) : Path = .Item(1) : If C > 2 Then Count = .Item(2)
If Count = "" Then Count = Trim(InputBox(String(4, vbLf) & "Введите число создаваемых копий"&_
vbLf & "для каждого выбранного элемента:", Space(13) & "Создание копий выбранных элементов"))
If Not IsNumeric(Count) Then WScript.Quit : End If : If C > 3 Then Px = .Item(3)
If C = 5 Then If .Item(4) <> "" Then Ext = "." & .Item(4) End If
End With : Set ShA = CreateObject("Shell.Application")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set List = FSO.OpenTextFile(List,,,-1)
Do : F = Trim(List.ReadLine)
If FSO.FolderExists(F) Then
Test = 1 : Filt = 160 : BN = FSO.GetFileName(F)
Else
Test = 0 : Filt = 192 : BN = FSO.GetBaseName(F)
Ex = FSO.GetExtensionName(F) : If C < 5 And Len(Ex) Then Ext = "." & Ex
End If : Max = 0
For i = 1 To Len(BN)
N = Right(BN, i) : If IsNumeric(N) Then M = N Else Exit For
Next
If M = N Then
For i = 1 To Len(M)
If Mid(M, i, 1) <> "0" Then Exit For
Next : M = Mid(M, i)
End if
If M <> "" Then
Max = CLng(M) : BN = Left(BN, Len(BN) - Len(M))
ElseIf Right(BN, Len(Px)) <> Px Then
n = 1
For i = 1 To Len(Px)
If Left(Px, i) = Right(BN, i) Then n = i
Next : BN = BN & Mid(Px, n)
End If : Set Items = ShA.NameSpace(Path).Items
Items.Filter Filt, BN & "*" & Ext
Cnt = Items.Count : Ln = Len(BN) + 1
If Cnt Then
For x = 0 to Cnt - 1
Item = Items.Item(x) : M = Mid(Item, Ln, Len(Item) - Ln - Len(Ext) + 1)
If IsNumeric(M) Then : If CLng(M) > Max Then Max = CLng(M) End If
Next
End If
For i = 1 To Count
FN = FSO.BuildPath(Path, BN & Max + i)
If Test Then
If C = 5 Then FSO.CreateFolder FN & Ext Else FSO.GetFolder(F).Copy FN, 0
Else
If C = 5 Then FSO.CreateTextFile(FN & Ext) Else FSO.CopyFile F, FN & Ext, 0
End if
Next
Loop Until List.AtEndOfStream+ пару приблуд:
1) 000№+1.
2) Совпадающее начало вставки с окончанием базового имени будет нивелироваться. Т.е. из MyName.ext при вставке NameIs получится MyNameIs№+1.ext.
Последний раз редактировалось Flasher Сб мар 21, 2015 11:41, всего редактировалось 1 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Flasher
Можно ли как-то еще сделать, чтобы была возможность всавки пробела?
Есть особенность. Если необходимо сделать, например 2 символа "--", то ставить в параметрах надо еще на один символ больше.
А, можно поподробнее насчет пункта 2) ?
П.1 это "name№+1" а в п.2 "Is" это вставка постоянных символов (например, "_v")?
Т.е. имеется в виду следующее. Например, есть "Новая папка", при параметре "папка" (<вставка до №>) будет "Новая папка_1", а не "Новая папка папка_1".
Можно ли как-то еще сделать, чтобы была возможность всавки пробела?
Есть особенность. Если необходимо сделать, например 2 символа "--", то ставить в параметрах надо еще на один символ больше.
А, можно поподробнее насчет пункта 2) ?
П.1 это "name№+1" а в п.2 "Is" это вставка постоянных символов (например, "_v")?
Т.е. имеется в виду следующее. Например, есть "Новая папка", при параметре "папка" (<вставка до №>) будет "Новая папка_1", а не "Новая папка папка_1".
Везде, где в каком бы то ни было параметре значатся пробелы, он целиком либо в соответствующей этому части берётся в кавычки.Nick писал(а):Можно ли как-то еще сделать, чтобы была возможность всавки пробела?
Нет, это учёт нулей отдельно от счётчика.Nick писал(а):П.1 это "name№+1"
Про другую вставку нигде речь и не идёт.Nick писал(а):это вставка постоянных символов (например, "_v")?
При параметре папка_.Nick писал(а):при параметре "папка"
, а не "Новая папкапапка_№+1".Nick писал(а):, а не "Новая папка папка_1".
Add: В 45 строке убрал +1. И как я это проморгал.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Iori
Для чего создавать пустышки? Мне казалось это очевидным. Указываешь, к примеру, cfg/ini, ставишь курсор на exe, нажимаешь, возника(е,ю)т конфиг(и), в котор(ом,ых) потом ведёшь самостоятельную редакцию. Пустышки в т. ч. полезны для создания шаблонов и экспериментов. Это касается и этих скриптов: 1, 2. Ну, и вообще всех кнопок/скриптов/утилит, создающих новый файл.
Для чего создавать пустышки? Мне казалось это очевидным. Указываешь, к примеру, cfg/ini, ставишь курсор на exe, нажимаешь, возника(е,ю)т конфиг(и), в котор(ом,ых) потом ведёшь самостоятельную редакцию. Пустышки в т. ч. полезны для создания шаблонов и экспериментов. Это касается и этих скриптов: 1, 2. Ну, и вообще всех кнопок/скриптов/утилит, создающих новый файл.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.