View previous topic :: View next topic |
Author |
Message |
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Mar 10, 2015 22:38 Post subject: |
|
|
Nick wrote: | Тот же вопрос? | Нет. А как он может быть тот же? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Nick
Joined: 26 Dec 2014 Posts: 107
|
(Separately) Posted: Wed Mar 11, 2015 15:54 Post subject: |
|
|
Flasher
Я просто не стал копировать сообщение в еще одной теме, а дал ссылку.
Quote: | Какие строки нужно исправить, чтобы работал скрипт без "постфикс"? |
|
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Mar 11, 2015 20:05 Post subject: |
|
|
Nick
Там скрипт для других нужд, у него своя специфика, завязанная на двойных расширениях. А здешний скрипт касается именно того, о чём по логике должна вестись речь. И именно его нужно править. Никаких постфиксов в нём нет. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Nick
Joined: 26 Dec 2014 Posts: 107
|
(Separately) Posted: Thu Mar 12, 2015 19:34 Post subject: |
|
|
Flasher
Тогда, какие строки нужно исправить в этом скрипте чтобы при наличии файла вида: File_v2.txt получался File_v3.txt и т.п.? |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Mar 13, 2015 00:27 Post subject: |
|
|
Nick
Это касается ситуации при постановке курсора на файле Name_v№.ext? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Nick
Joined: 26 Dec 2014 Posts: 107
|
(Separately) Posted: Mon Mar 16, 2015 14:22 Post subject: |
|
|
Flasher
Да, т.е. примерное поведение как и в этом скрипте. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Mar 18, 2015 15:22 Post subject: |
|
|
Nick
И всё же.
Если стоим на name, создавать name_№ или name_v№?
А если стоим на файле name№, то что создавать: name№_1 | name№_v1 | name№+1 | name_№+1 | name_v№+1 ?
А если стоим на файле name_№, то как? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Nick
Joined: 26 Dec 2014 Posts: 107
|
(Separately) Posted: Wed Mar 18, 2015 17:29 Post subject: |
|
|
Flasher
Flasher wrote: | Если стоим на name, создавать name_№ или name_v№? | В этом случае, наверно, лучше name_v№.
Flasher wrote: | А если стоим на файле name№ | Наверно, лучше name№+1. Flasher wrote: | А если стоим на файле name_№ | name_№+1.
Т.е., наверно, лучше сделать ближе к именам файлов, которые и были.
Наверно, надо будет скопировать 2 скрипта и поставить на кнопки (один будет создавать "Name_v№", а другой "Name_№"). |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Mar 18, 2015 17:42 Post subject: |
|
|
Нравится мне это "наверно". )
Зачем 2 скрипта? Обойдусь параметром.
Проверяем: Code: | '•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
' 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. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Last edited by Flasher on Sat Mar 21, 2015 12:41; edited 1 time in total |
|
Back to top |
|
|
Nick
Joined: 26 Dec 2014 Posts: 107
|
(Separately) Posted: Fri Mar 20, 2015 19:25 Post subject: |
|
|
Flasher
Можно ли как-то еще сделать, чтобы была возможность всавки пробела?
Есть особенность. Если необходимо сделать, например 2 символа "--", то ставить в параметрах надо еще на один символ больше.
А, можно поподробнее насчет пункта 2) ?
П.1 это "name№+1" а в п.2 "Is" это вставка постоянных символов (например, "_v")?
Т.е. имеется в виду следующее. Например, есть "Новая папка", при параметре "папка" (<вставка до №>) будет "Новая папка_1", а не "Новая папка папка_1". |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Mar 20, 2015 20:05 Post subject: |
|
|
Nick wrote: | Можно ли как-то еще сделать, чтобы была возможность всавки пробела? | Везде, где в каком бы то ни было параметре значатся пробелы, он целиком либо в соответствующей этому части берётся в кавычки.
Nick wrote: | П.1 это "name№+1" | Нет, это учёт нулей отдельно от счётчика.
Nick wrote: | это вставка постоянных символов (например, "_v")? | Про другую вставку нигде речь и не идёт.
Nick wrote: | при параметре "папка" | При параметре папка_.
Nick wrote: | , а не "Новая папка папка_1". | , а не "Новая папкапапка_№+1".
Add: В 45 строке убрал +1. И как я это проморгал. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Nick
Joined: 26 Dec 2014 Posts: 107
|
(Separately) Posted: Wed Apr 22, 2015 12:57 Post subject: |
|
|
Flasher
Спасибо, с пробелами теперь тоже, работает. Flasher wrote: | В 45 строке убрал +1 | У меня и так, вроде, нормально работало . |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Apr 22, 2015 13:12 Post subject: |
|
|
Nick
Пожалуйста.
Не совсем нормально. Вставка на символ спереди обрезалась. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Iori
Joined: 25 Apr 2012 Posts: 551
|
(Separately) Posted: Mon Aug 21, 2017 03:43 Post subject: |
|
|
Quote: | Если указан 5-й параметр, то создаваться будут пустые элементы |
Flasher
А для чего такое может понадобится? |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Aug 21, 2017 04:15 Post subject: |
|
|
Iori
Для чего создавать пустышки? Мне казалось это очевидным. Указываешь, к примеру, cfg/ini, ставишь курсор на exe, нажимаешь, возника(е,ю)т конфиг(и), в котор(ом,ых) потом ведёшь самостоятельную редакцию. Пустышки в т. ч. полезны для создания шаблонов и экспериментов. Это касается и этих скриптов: 1, 2. Ну, и вообще всех кнопок/скриптов/утилит, создающих новый файл. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|