Скрипт для посылания в буфер изменённого пути
Select messages from
# through # FAQ
[/[Print]\]
Goto page Previous  1, 2, 3  Next  :| |:
Total Commander -> Автоматизация Total Commander

#16:  Author: BatyaLocation: Москва, Россия PostPosted: Tue Oct 12, 2010 14:20
    —
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

#17:  Author: FlasherLocation: Москва PostPosted: Tue Oct 12, 2010 14:56
    —
Batya
Какое же это полное решение? А как же пункты 1, 2, 3 ?

#18:  Author: BatyaLocation: Москва, Россия PostPosted: Tue Oct 12, 2010 16:40
    —
Flasher wrote:
Какое же это полное решение? А как же пункты 1, 2, 3 ?

Ну вот, я так и знал, что кто-нибудь спросит Smile
Исправил.

#19:  Author: FlasherLocation: Москва PostPosted: Tue Oct 12, 2010 17:30
    —
Batya
Я догадывался.) Спасибо за VBS-вариант!
Вот теперь и думай, каким скриптом пользоваться..

#20:  Author: Andrey_ALocation: Сочи PostPosted: Tue Oct 12, 2010 19:01
    —
Quote:
В чём назначение скрипта

Преобразование путей выделенных файлов в различные формы (строки) и отправка полученного в буфер обмена для дальнейшей вставки в различные конфиг файлы (Reg,Bat,Ini....)
Просто все программы имеют свой синтаксис, и везде он связан с именем,путём,расширением... файла. Где-то имя в кавычках, где-то в чёрточках.... Этот скрипт мне облегчил жизнь -
выделил нужные файлы, нажал кнопку с нужными параметры и вставил куда надо.
Quote:
Просто скрипт-мутант какой-то получился

Да, скрипт получился не маленький, но делает он очень многое. Раньше у меня для таких задач было 8 скриптов, а сейчас один
Выкладываю скрипт и примеры кнопок здесь:
Скрипт
Code:
begin 644 CopyLineInPathToClip.rar
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
'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

Пути и значки вставить свои

#21:  Author: Samwatas PostPosted: Fri Oct 15, 2010 21:22
    —
Кстати, чтобы не вводить вручную все переменные окружения, можно автоматически получать их из системы (посредством 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

#22:  Author: BatyaLocation: Москва, Россия PostPosted: Mon Oct 18, 2010 09:30
    —
Samwatas
Все переменные учитывать некорректно. Например, есть переменная "NUMBER_OF_PROCESSORS", значение которой у меня равно "2". Так что же, везде, где в именах есть "2", вставлять "%NUMBER_OF_PROCESSORS%"?

#23:  Author: Samwatas PostPosted: Mon Oct 18, 2010 10:18
    —
Я привел заготовку функции (которая получает ВСЕ переменные). Каждый может доработать её для работы только с путями под свои потребности (если это нужно). Например, проверять $aResult[$i][1] на наличие шаблона пути (например <буква>:\), можно также исключить переменную Path. Короче говоря каждый может настроить ее под себя (функция возвращает массив переменных, а вы уже делаете с ним, что хотите).

#24:  Author: Hedin PostPosted: Wed Sep 25, 2019 11:18
    —
Подскажите, а как связать выложенный vbs-скрипт и команду cm_CopyFullNamesToClip, т.е. как заставить скрипт заработать?

#25:  Author: FlasherLocation: Москва PostPosted: Wed Sep 25, 2019 13:05
    —
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

#26:  Author: Hedin PostPosted: Thu Sep 26, 2019 15:42
    —
Flasher
Спасибо! Заработало. Выбрал Ваш скрипт.

#27: Прошу помощи, SOS Author: ToniZa PostPosted: Thu Apr 02, 2020 00:25
    —
Flasher wrote:
Hedin
См. памятку подфорума. Мой скрипт так выглядит:
Код:...


Есть очень похожая задача (ну, по сути - та же самая, только копировать в буфер, подменять, а затем вставлять их в текст, нужно пути с ftp сервера).

Но... - большая просьба - не надо бить меня по печенкам и закидывать камнями - я простой чайник и мне сложно вотэтофсё. Можно, для чайника, на пальцах, как-что-кому-куда-чё-пихать? Embarassed

В смысле - как повесить команду (какую-нить) на кнопку - я знаю. Но, как привязать к ней скрипт, так, чтоб он работал - не знаю. (что такое "памятка подфорума" я тоже не нашел).

И, главное - как потом заменить переменные, чтобы у меня менялось то, что нужно на то, что нужно?

Не откажите старому, больному человеку... Embarassed

#28:  Author: FlasherLocation: Москва PostPosted: Thu Apr 02, 2020 02:18
    —
ToniZa wrote:
а затем вставлять их в текст, нужно пути с ftp сервера
Прочтите название темы. Тут про вставку куда-либо речь не идёт. Только про копирование в буфер. И для родительских папок ftp у вас должны быть заранее (через Autorun/setx) созданы переменные окружения, о которых здесь ведётся речь, иначе это разговор совсем для другого треда.

ToniZa wrote:
что такое "памятка подфорума" я тоже не нашел
Подфорум — это раздел форума, в котором находится текущая тема. Вы в него вошли, прежде чем перейти к этой теме. Логично, что памятку нужно искать прикреплённой в самом начале (сверху первой страницы) этого раздела.

#29:  Author: ToniZa PostPosted: Thu Apr 02, 2020 17:36
    —
Flasher wrote:
Тут про вставку куда-либо речь не идёт. Только про копирование в буфер


Благодарю за разъяснения. Тогда, конкретно и по существу:

Надо регулярно и очень часто копировать ссылки с путями на файлы, лежащие на ftp и записывать их в текстовый файл.

В «оригинале», после копирования ссылка выглядит так:

--- (к сожалению, мне форум не дает использовать формат ссылки в сообщении. Не пропускает!!!)---

Поэтому вид такой дурацкий (на самом деле, понятно, везде должна быть латиница!):

фтп://сервер.домен.ком/папака_1/папка_2/файл.ехт

надо заменять на вид:

хттп://сервер.домен.ком/exchange_II/папака_1/папка_2/файл.ехт


T.e. начальное «ftp» меняется на «http» и после «upload.domain.com/» добавляется промежуточный каталог (всегда один и тот же!): - «/exchange_II/»


Вопрос - нужен скрипт, который при копировании в буфер пути, сразу будет заменять/вставлять требуемые места/дополнения. Так, чтобы при вставке из буфера обмена в файл, ссылка сразу бы получалась нужного вида.

Можете помочь с этим?

#30:  Author: FlasherLocation: Москва PostPosted: Thu Apr 02, 2020 18:39
    —
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 и ссылку ниже.



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page Previous  1, 2, 3  Next  :| |:
Page 2 of 3

Powered by phpBB © 2001, 2005 phpBB Group