View previous topic :: View next topic |
Author |
Message |
Batya
Joined: 15 Dec 2004 Posts: 2220 Location: Москва, Россия
|
(Separately) Posted: Tue Oct 12, 2010 14:20 Post subject: |
|
|
vbs-cкрипт для полного решения изначальной задачи:
Code: | EnvArray = Array("COMMANDER_PATH", "WINDIR", "PROGRAMFILES")
Dim ReplArray
Set ReplArray = CreateObject("Scripting.Dictionary")
ReplArray.Add "Что менять", "На что менять"
ReplArray.Add "Так можно", "несколько раз"
'-----------------------------------
Param1 = 0:Param2 = "":Param3 = ""
If WScript.Arguments.Count > 0 Then Param1 = WScript.Arguments(0)
If WScript.Arguments.Count > 1 Then Param2 = WScript.Arguments(1)
If WScript.Arguments.Count > 2 Then Param3 = WScript.Arguments(2)
With CreateObject("TCScript.Helper")
.SendCommand "cm_CopyFullNamesToClip", True
Clip = .GetTextFromClip
With CreateObject("WScript.Shell")
For Each E In EnvArray
E = "%" & E & "%"
Clip = Replace(Clip, .ExpandEnvironmentStrings(E), E, 1, -1, 1)
Next
End With
For Each K In ReplArray.Keys
Clip = Replace(Clip, K, ReplArray(K), 1, -1, 1)
Next
Clip = vbLf & Clip & vbCr
If Param1 = "1" Then Clip = RegExpReplace(Clip, "(\n)(.+)(\r)", "$1""$2""$3")
Clip = RegExpReplace(Clip, "(\n)(.+)(\r)", "$1" & Param2 & "$2$3")
Clip = RegExpReplace(Clip, "(\n)(.+)(\r)", "$1$2" & Param3 & "$3")
Clip = Mid(Clip, 2, Len(Clip) - 2)
.SetTextToClip(Clip)
End With
Function RegExpReplace(pText, pReplStr1, pReplStr2)
With New RegExp
.Pattern = pReplStr1
.IgnoreCase = True
.Global = True
RegExpReplace = .Replace(pText, pReplStr2)
End With
End Function |
Здесь в первой строке в массиве EnvArray нужно перечислить переменные окружения, которые могут быть заменены.
Для реализации п.1 задачи начитываем массив ReplArray.
Для реализации п.2 задачи используется первый параметр к скрипту. Значения 1 (добавлять кавычки) или 0 (не добавлять - по умолчанию).
Для реализации п.3 задачи используются второй и третий параметры к скрипту - добавочные приставка и окончание к каждой строке. _________________ Нет, я не сплю. Я просто медленно моргаю.
Last edited by Batya on Tue Oct 12, 2010 16:50; edited 2 times in total |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Oct 12, 2010 14:56 Post subject: |
|
|
Batya
Какое же это полное решение? А как же пункты 1, 2, 3 ? |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2220 Location: Москва, Россия
|
(Separately) Posted: Tue Oct 12, 2010 16:40 Post subject: |
|
|
Flasher wrote: | Какое же это полное решение? А как же пункты 1, 2, 3 ? |
Ну вот, я так и знал, что кто-нибудь спросит
Исправил. _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Oct 12, 2010 17:30 Post subject: |
|
|
Batya
Я догадывался.) Спасибо за VBS-вариант!
Вот теперь и думай, каким скриптом пользоваться.. |
|
Back to top |
|
|
Andrey_A
Joined: 10 Apr 2009 Posts: 394 Location: Сочи
|
(Separately) Posted: Tue Oct 12, 2010 19:01 Post subject: |
|
|
Quote: | В чём назначение скрипта |
Преобразование путей выделенных файлов в различные формы (строки) и отправка полученного в буфер обмена для дальнейшей вставки в различные конфиг файлы (Reg,Bat,Ini....)
Просто все программы имеют свой синтаксис, и везде он связан с именем,путём,расширением... файла. Где-то имя в кавычках, где-то в чёрточках.... Этот скрипт мне облегчил жизнь -
выделил нужные файлы, нажал кнопку с нужными параметры и вставил куда надо.
Quote: | Просто скрипт-мутант какой-то получился |
Да, скрипт получился не маленький, но делает он очень многое. Раньше у меня для таких задач было 8 скриптов, а сейчас один
Выкладываю скрипт и примеры кнопок здесь:
Скрипт Code: | begin 644 CopyLineInPathToClip.rar
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
MA<5T.'&?J]?U&R*3<$/,+U:+I>&)Q`I('%:O41[",..MG#L!>1CCI;L`E
M64ZB;$*`O>ZZ2SI*_G/E[8?T>\R0#RN;%77V;!U@U4>_I2Y!NJOG>4;@O,50
MT2!*`?0W726NP2[81W>Z8:*@+?F(1.^TJH<"LP\R]Z&%URM5>Y?(C>QKCOH<
M%DB?ULF"3D1`JX4B:6GV7BV(Z1W[\`9L:<3'A/7D2H$D-AUPE82X6^,I")(^
MDV.K7T`X.Q9;+@D)5FX)91^>:2R_;/D^/P]^L_K0^WIPHA^,X66UZ;^=IZCW
M3-0TH?#0OJ*\/JMEW3*,[A%;+6XY!75>S82,G.D^^LYAG)=46;$/M2.;U]7>
M^<_%Q>@S16S4$:?PC"LFOV"AI_POC-/:[Y`?MN=^\>PRH&\5[%P,>2FXO*BS
M10H^'.6**-@YI7O^K$K`ZR@.\`M`-!>B?_H;XD@\E9U/<=H\CE@PFM7?M<_9
MFK8B`TL5\\<,BTM-T$6T]].-3=DQI:"C@609<&SFES'VHU,M:3]!H+MP:'99
MY,2UF/HZ+;A6<CEWI_$IGXHI>*.OAEMQ"X6PK?R$SG%"LG?605TT[?%BT&+0
MA'B,X<ENOR]>-$/^S&-K2__I+671^G@_W%7'C4LNBW<E7[]Z#0UN'O0+6V8E
MS95XW)>1@\P=G:`\X:,.6OEW%AMR6ZT+C'*^U9.Q,#:KHU,G:KQQS)<V\"3-
MPWN9!U&S$@W#E:;H$OFI"W:5V2ZK4[HJ/(CK,\\17H>)F>/L($%?"UH"S_Y`
'Q#U[`$`'````
`
end
sum -r/size 18229/4912 |
Примеры кнопок: Code: | begin 644 ButtonCopyLineInPathToClip.rar
M4F%R(1H'`,^0<P``#0````````!"7W0@D$,`20,``.40```">,_Y1T*53#T=
M,QX`(````$)U='1O;D-O<'E,:6YE26Y0871H5&]#;&EP+G1X=`#P@$DG"!W1
M4,C;S4&;WH/P?AQ=-"RW9O0Q:T$&,GB,"-6R;1"FA1)-BPL9L)(^6HDOS:WT
M4J-I8*^RT+%&#JQG2K1H*#2ZMV2;K.;NL\F[6T99:4\T-V))NN\_\W/W/_,Y
MG/C.='_.CF=',/V89F!G0&89[C<HUV_>9+V^QG<"^>NZ\O;P(SS*R<EWWWO^
M0/'EV!R!CO#+BQHJ>?*.@PI,617,?..=Z,M!]+ZOHP@_S'A!U[>8\Y2^-HQ(
MA\DYXA(TGZG3WT?+S9>>:@\56D$9NB8%74H`S\&!6^LB9D+0BPD(\HB'&C=L
MLK#4%JTJ:-2EM3N#E!I\:-7@Y)X$=^?1G3+%)I/V.X4M^!\2WQ7IO_JB@M+8
MS"+2I4G5?G7EF1'F!Q3MVA84";L\/%/J3`"X>&P'[@$'(?8YKAZV8#%)8^5*
M116&2P!^:U%\&F&G2H418Z4^'@1#,Z$WIVUR<=8^388X+24E+=TF\[5"/^CE
M&K3J6::$^C1(7CL&F,:\4P0FD3.I@:S`G'B;""#$N9F$9;R#449]M@%P%Z?5
MZP:^M^IGVNR+_[^.Q2H0AJ`<<88JL![*7>)[I7XX\7CL6?Y';L&&;7G*M@44
M)2O;QL..P@0MX@`K<JFC0=*5+/T(""$NNSI2_086<(5N=(/99*2W1G6D10EU
MU<3;,_<$R-;W#*YF5P%<J[/[89EN"J%)/SI7^R>GA937:3F/E3WT!H.%"CC\
M_QHNAM+=M:U/;\0_P!;_6;,I8V`^Q@.("<[!=84:HC-JC9@23T$,^,!SCIT'
MZ^`3-Q*#NT1VKM9.T3685$JBUCMN@HN;Z)ONU6P"(M)WCT"P1<(.*2N*V3=C
M7^!UGJK:HBM]%LLE#&DA>/!?UP`,ET2TJF6NLG5!N6?)]&EN@<@HSJPY;--=
M$P;$''.8R.UD<>V%0.KG"S.JH6F78@D$W82!,>"%M(,Q>GD7O3#'RWP5%A;J
MNIE3((Q682`G#%-I##I;5<%-#\]_$0C0U(69U<_(K!(OQ=UBG;:_^CQ9,+0A
MWYP>K+-@BY"QW%]6$K/0DRX73%^2RKIA-P5%;2LH6W%O-4H<F\!A*F6BVV#>
C+B;S$5K/[SES<,XO`2C6UO?[-74^[>,LM@O]$,0]>P!`!P``
`
end
sum -r/size 53227/935 |
Пути и значки вставить свои |
|
Back to top |
|
|
Samwatas
Joined: 12 Sep 2009 Posts: 95
|
(Separately) Posted: Fri Oct 15, 2010 21:22 Post subject: |
|
|
Кстати, чтобы не вводить вручную все переменные окружения, можно автоматически получать их из системы (посредством cmd-команды set).
Вот набросал пример такой функции:
Code: | #include <Array.au3>
$aArray = _GetAllEnvVar(); Вызываем функцию, возвращающую массив всех переменных окружения,
If @error Then MsgBox(16, @error, @extended); Если не возникло никаких проблем,
_ArrayDisplay($aArray); То показываем полученный массив переменных.
Func _GetAllEnvVar()
Local $aTmp1, $aTmp2, $iReturn, $sConsoleRead = '', $iPID, $vStruct1, $vStruct2
$iPID = Run(@ComSpec & ' /c set', @SystemDir, @SW_HIDE, 2)
While 1
$sConsoleRead &= StdoutRead($iPID)
If @error Then ExitLoop
Wend
$vStruct1 = DllStructCreate('char[' & StringLen($sConsoleRead) & ']')
$vStruct2 = DllStructCreate('char[' & StringLen($sConsoleRead) & ']')
DllStructSetData($vStruct1, 1, $sConsoleRead)
$iReturn = DllCall('User32.dll','BOOLEAN', 'OemToCharA', 'ptr', DllStructGetPtr($vStruct1), 'ptr', DllStructGetPtr($vStruct2))
If @error Then Return SetError(@error, @extended, '')
$aTmp1 = StringSplit(DllStructGetData($vStruct2, 1), @CRLF, 3)
If @error Then Return SetError(@error, @extended, '')
Dim $aResult[UBound($aTmp1)-1][2]
For $i = 0 to UBound($aResult)-1
$aTmp2 = StringSplit($aTmp1[$i], '=')
If @error Then Return SetError(@error, @extended, '')
If $aTmp2[0] = 2 Then
$aResult[$i][0] = $aTmp2[1]
$aResult[$i][1] = $aTmp2[2]
Else
Return SetError(@error, @extended, '')
EndIf
Next
Return $aResult
EndFunc |
|
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2220 Location: Москва, Россия
|
(Separately) Posted: Mon Oct 18, 2010 09:30 Post subject: |
|
|
Samwatas
Все переменные учитывать некорректно. Например, есть переменная "NUMBER_OF_PROCESSORS", значение которой у меня равно "2". Так что же, везде, где в именах есть "2", вставлять "%NUMBER_OF_PROCESSORS%"? _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Samwatas
Joined: 12 Sep 2009 Posts: 95
|
(Separately) Posted: Mon Oct 18, 2010 10:18 Post subject: |
|
|
Я привел заготовку функции (которая получает ВСЕ переменные). Каждый может доработать её для работы только с путями под свои потребности (если это нужно). Например, проверять $aResult[$i][1] на наличие шаблона пути (например <буква>:\), можно также исключить переменную Path. Короче говоря каждый может настроить ее под себя (функция возвращает массив переменных, а вы уже делаете с ним, что хотите). |
|
Back to top |
|
|
Hedin
Joined: 25 Sep 2019 Posts: 12
|
(Separately) Posted: Wed Sep 25, 2019 11:18 Post subject: |
|
|
Подскажите, а как связать выложенный vbs-скрипт и команду cm_CopyFullNamesToClip, т.е. как заставить скрипт заработать? |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Sep 25, 2019 13:05 Post subject: |
|
|
Hedin
См. памятку подфорума. Мой скрипт так выглядит:
Code: | '=============================== VBS ================================
' Скопировать полные имена выбранных объектов с переменными окружения
' Параметры: %Z%WL
'====================================================================
Option Explicit : Dim List, Dic, F, i, Keys, oList, K, All
If WSH.Arguments.Count Then List = WSH.Arguments(0) Else WSH.Quit
Set Dic = CreateObject("Scripting.Dictionary") : Dic.CompareMode = 1
With CreateObject("WScript.Shell").Environment("Process")
For Each F in Split("COMMANDER_INI COMMANDER_PATH COMMONPROGRAMW6432 " &_
"COMMONPROGRAMFILES(x86) COMMONPROGRAMFILES PUBLIC PROGRAMFILES(x86) " &_
"PROGRAMW6432 PROGRAMFILES WINDIR TMP TEMP LOCALAPPDATA APPDATA " &_
" USERPROFILE ALLUSERSPROFILE COMMANDER_DRIVE SYSTEMDRIVE HOMEDRIVE")
i = .Item(F) : If i <> "" Then If Not Dic.Exists(i) Then Dic.Add i, F
Next
End With : Keys = Dic.Keys
Set oList = CreateObject("Scripting.FileSystemObject").OpenTextFile(List,,,-1)
Do: F = oList.ReadLine
For i = 0 To Dic.Count - 1
K = Keys(i) : If InStr(1, F, K, 1) Then _
F = Replace(F, K, "%" & Dic(K) & "%", 1, -1, 1) : Exit For
Next
All = All & vbCrLf & F
Loop Until oList.AtEndOfStream : oList.Close
With CreateObject("SAPI.SpFileStream")
.Format.Type = 1 : .Open List, 3 : .Write Mid(All, 3) : .Close
End With
CreateObject("WScript.Shell").Run "%ComSpec% /q/c clip<" & List, 0
Dic.RemoveAll : Set Dic = Nothing : Set oList = Nothing |
_________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Hedin
Joined: 25 Sep 2019 Posts: 12
|
(Separately) Posted: Thu Sep 26, 2019 15:42 Post subject: |
|
|
Flasher
Спасибо! Заработало. Выбрал Ваш скрипт. |
|
Back to top |
|
|
ToniZa
Joined: 01 Apr 2020 Posts: 11
|
(Separately) Posted: Thu Apr 02, 2020 00:25 Post subject: Прошу помощи, SOS |
|
|
Flasher wrote: | Hedin
См. памятку подфорума. Мой скрипт так выглядит:
Код:... |
Есть очень похожая задача (ну, по сути - та же самая, только копировать в буфер, подменять, а затем вставлять их в текст, нужно пути с ftp сервера).
Но... - большая просьба - не надо бить меня по печенкам и закидывать камнями - я простой чайник и мне сложно вотэтофсё. Можно, для чайника, на пальцах, как-что-кому-куда-чё-пихать?
В смысле - как повесить команду (какую-нить) на кнопку - я знаю. Но, как привязать к ней скрипт, так, чтоб он работал - не знаю. (что такое "памятка подфорума" я тоже не нашел).
И, главное - как потом заменить переменные, чтобы у меня менялось то, что нужно на то, что нужно?
Не откажите старому, больному человеку... _________________ ToniZa - |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Apr 02, 2020 02:18 Post subject: |
|
|
ToniZa wrote: | а затем вставлять их в текст, нужно пути с ftp сервера | Прочтите название темы. Тут про вставку куда-либо речь не идёт. Только про копирование в буфер. И для родительских папок ftp у вас должны быть заранее (через Autorun/setx) созданы переменные окружения, о которых здесь ведётся речь, иначе это разговор совсем для другого треда.
ToniZa wrote: | что такое "памятка подфорума" я тоже не нашел | Подфорум — это раздел форума, в котором находится текущая тема. Вы в него вошли, прежде чем перейти к этой теме. Логично, что памятку нужно искать прикреплённой в самом начале (сверху первой страницы) этого раздела. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
ToniZa
Joined: 01 Apr 2020 Posts: 11
|
(Separately) Posted: Thu Apr 02, 2020 17:36 Post subject: |
|
|
Flasher wrote: | Тут про вставку куда-либо речь не идёт. Только про копирование в буфер |
Благодарю за разъяснения. Тогда, конкретно и по существу:
Надо регулярно и очень часто копировать ссылки с путями на файлы, лежащие на ftp и записывать их в текстовый файл.
В «оригинале», после копирования ссылка выглядит так:
--- (к сожалению, мне форум не дает использовать формат ссылки в сообщении. Не пропускает!!!)---
Поэтому вид такой дурацкий (на самом деле, понятно, везде должна быть латиница!):
фтп://сервер.домен.ком/папака_1/папка_2/файл.ехт
надо заменять на вид:
хттп://сервер.домен.ком/exchange_II/папака_1/папка_2/файл.ехт
T.e. начальное «ftp» меняется на «http» и после «upload.domain.com/» добавляется промежуточный каталог (всегда один и тот же!): - «/exchange_II/»
Вопрос - нужен скрипт, который при копировании в буфер пути, сразу будет заменять/вставлять требуемые места/дополнения. Так, чтобы при вставке из буфера обмена в файл, ссылка сразу бы получалась нужного вида.
Можете помочь с этим? _________________ ToniZa - |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Apr 02, 2020 18:39 Post subject: |
|
|
ToniZa wrote: | Можете помочь с этим? | Да, это просто:
Code: | ' Условие: необходим компонент TCScript.dll
Set TCH = CreateObject("TCScript.Helper") : TCH.SendCommand 2018, 1
With New RegExp
.Global = 1 : .IgnoreCase = 1 : .Pattern = "(^|\n)f(tp://[^/]+/)"
TCH.SetTextToClip .Replace(TCH.GetTextFromClip, "ht$2exchange_II/")
End With
Set TCH = Nothing | См. п. 7 и ссылку ниже. _________________ Автору сборки 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
|