Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Копирование содержимого выделенных файлов в буфер обмена 
Author Message
Flasher



PostPosted: Sat Jan 19, 2019 08:38    Post subject: Reply with quote

prog_san
Если очень надо одним скриптом, то на AutoHotKey (правда, без поддержки OEM и UTF-7/8 без ВОМ):
Code:
;:::::::::::::::::::::::: AHK ::::::::::::::::::::::::
; Отправить содержимое выбранных файлов в буфер обмена
; Параметры: %WL <разделитель>
; \n — перевод строки; \f — имя файла
; Примеры: %WL \n\f\n  |  %WL "\n\n===== \f =====\n\n"
;:::::::::::::::::::::::::::::::::::::::::::::::::::::
#NoEnv
#NoTrayIcon
ListLines, Off
SetBatchLines,-1
If !%0%
ExitApp
If 0 != 2
{ MsgBox, 4144, Текст файлов в буфер обмена, Укажите 2 параметра!, 1.5
  ExitApp
}

Delim = %2%
StringReplace Delim, Delim, \n, `r`n, All
Loop, Read, %1%
{ FileRead, Text, % A_LoopReadLine
  If Not ErrorLevel
    All .= StrReplace(Delim, "\f", RegExReplace(A_LoopReadLine, ".+\\")) . Text
}
If All !=
{ Clipboard =
  Clipboard = %All%
}

Либо на AutoIt (без поддержки OEM и UTF-7):
Code:
;:::::::::::::::::::::::: AU3 ::::::::::::::::::::::::
; Отправить содержимое выбранных файлов в буфер обмена
; Параметры: %WL <разделитель>
; \n — перевод строки; \f — имя файла
; Примеры: %WL \n\f\n  |  %WL "\n\n===== \f =====\n\n"
;:::::::::::::::::::::::::::::::::::::::::::::::::::::
If $CmdLine[0] = 0 Then Exit
If $CmdLine[0] <> 2 Then
  MsgBox(4144, " Текст файлов в буфер обмена", "Укажите 2 параметра!")
  Exit
EndIf
Global $All, $oList = FileOpen($CmdLine[1]), $Delim = StringReplace($CmdLine[2], '\n', @CRLF)
While 1
  $sLine = FileReadLine($oList)
  If @error Then ExitLoop
  $Text = FileRead($sLine)
  If Not @error Then $All &= StringReplace($Delim, '\f', StringRegExpReplace($sLine, '.+\\', '')) & $Text
WEnd
If $All <> "" Then ClipPut(StringRegExpReplace($All, '^\R+', ''))

_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group