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 

Копирование полного пути в буфер
Goto page 1, 2, 3, 4, 5, 6  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы printer-friendly view
View previous topic :: View next topic  
Author Message
Lovel



Joined: 25 Jul 2005
Posts: 6

Post (Separately) Posted: Mon Jul 25, 2005 09:39    Post subject: Копирование полного пути в буфер Reply with quote

Можно ли сделать копирование полного пути в буфер с кавычками, если путь содержит пробелы? А то приходится ctrl-shift-enter и копировать из ком.стр. - не очень удобно.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Mon Jul 25, 2005 12:38    Post subject: Reply with quote

Могу написать скриптик.
В кавычки заключать только имена с пробелами или все?
Back to top
View user's profile Send private message
D1P



Joined: 20 Dec 2004
Posts: 2973
Location: Тбилиси

Post (Separately) Posted: Mon Jul 25, 2005 12:43    Post subject: Reply with quote

Посмотри в сторону команды cm_CopyFullNamesToClip (вешается на хоткей или в меню). Хотя кавычки оно не вставляет.
Back to top
View user's profile Send private message
Lovel



Joined: 25 Jul 2005
Posts: 6

Post (Separately) Posted: Mon Jul 25, 2005 13:08    Post subject: Reply with quote

Batya wrote:
Могу написать скриптик.
В кавычки заключать только имена с пробелами или все?

Если можно. Вроде бы проблемы только с этим.

D1P wrote:
cm_CopyFullNamesToClip. Хотя кавычки оно не вставляет.

Вот именно, что не вставляет Smile
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Mon Jul 25, 2005 15:34    Post subject: Reply with quote

Lovel
Code:
'==================================================
' Копирование в буфер путей файлов с кавычками

' В параметрах вызова из TC должно быть прописано:
' %L
'==================================================
Option Explicit
'===== Изменяемые параметры =======================
Dim Delimiter
Delimiter = vbNewLine 'Разделитель списка
'==================================================
Dim TempFile, TCS
Set TempFile = CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0), 1)
Set TCS = CreateObject("TCScript.Helper")

Dim StrInFile, FileNames, M1
FileNames = ""
Do While Not TempFile.AtEndOfStream
  StrInFile = TempFile.ReadLine
  If InStr(StrInFile, " ") <> 0 Then
    StrInFile = chr(34) & StrInFile & chr (34)
  End If
  FileNames = FileNames & StrInFile & Delimiter
Loop
TCS.SetTextToClip(Left(FileNames, Len(FileNames) - Len(Delimiter)))
'M1 = MsgBox("Копирование выполнено", vbOKOnly + vbInformation, "Результат")
Set TempFile = Nothing
Set TCS = Nothing
Wscript.Quit

Сохрани код в файле *.vbs, повесь файл на кнопку, пропиши в параметрах кнопки %L. Для работы (для занесения в буфер) используется TCWSHelp.
Если нужно, чтобы все строки заключались в кавычки, закомментируй проверку условия вхождения пробела в имя, т.е. строки 20 и 22 - поставь в начале строк апостроф.
Если хочешь, чтобы выводилось сообщение после работы скрипта, раскомментируй строку 26.


Last edited by Batya on Thu Feb 04, 2010 20:51; edited 2 times in total
Back to top
View user's profile Send private message
Lovel



Joined: 25 Jul 2005
Posts: 6

Post (Separately) Posted: Tue Jul 26, 2005 10:18    Post subject: Reply with quote

Batya wrote:

Set TCS = CreateObject("TCScript.Helper")

Вот тут ругается: "ActiveX component can't create object: 'TCScript.Helper'". Правда подозреваю, что это у меня с виндой что-то.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Tue Jul 26, 2005 10:47    Post subject: Reply with quote

Lovel
Я же писал, что нужен TCWSHelp - >>>>> WSH Helper for TC beta9 <<<<<.
Скопируй его в отдельную папку, например, d:\TotalCmd\Utils\TCWSHelp, и зарегистрируй - просто запусти TCWSHelp.exe. После этого данный объект можно будет использовать в скриптах (что в моем скрипте и происходит).
Back to top
View user's profile Send private message
Lovel



Joined: 25 Jul 2005
Posts: 6

Post (Separately) Posted: Tue Jul 26, 2005 12:11    Post subject: Reply with quote

Batya wrote:
Я же писал, что нужен TCWSHelp - [url=http://wincmd.ru/files/tcwshelp_b9.zip]

Я не понял просто, спасибо большое, все работает.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed Feb 03, 2010 04:31    Post subject: Reply with quote

Batya
Ставил давно, недавно вспомнил о нём.
Не хочет скрипт работать. Установка нового TCWSHelp не помогало. "%L" само собой прописан.
Пишет синтаксическую ошибку: строка 9 (как у Lovel), символ 15, код 800A03EA. Что-то я не узрил толком ошибки. Что может быть не так?
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2563

Post (Separately) Posted: Wed Feb 03, 2010 13:37    Post subject: Reply with quote

Flasher wrote:
Что может быть не так?
Скорее всего в файле скрипта
Code:
Set TempFile = CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0), 1)
записан не в одну строчку, как у Batya, а в две.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed Feb 03, 2010 14:39    Post subject: Reply with quote

sa wrote:
записан не в одну строчку, как у Batya, а в две.

Да, сработало, только если копировать несколько, получается так
"Путь/Name1.*"КВАДРАТ"Путь/Name2.*"
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2563

Post (Separately) Posted: Wed Feb 03, 2010 15:45    Post subject: Reply with quote

Flasher wrote:
КВАДРАТ
Это символ возврата каретки: chr(13). Отделяет в буфере одну запись от другой. А чего хотелось бы?
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed Feb 03, 2010 16:17    Post subject: Reply with quote

sa wrote:
А чего хотелось бы?

Хотелось бы списком, как в случае с cm_CopyFullNamesToClip .
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2563

Post (Separately) Posted: Wed Feb 03, 2010 16:45    Post subject: Reply with quote

Flasher wrote:
Хотелось бы списком
Скорее всего, достаточно добавить символ перевода строки chr(10):
Code:
FileNames = FileNames & StrInFile & chr(13) & chr(10)
Добавил 03.02.10:
ну и 1 поменять на 2
Code:
TCS.SetTextToClip(Left(FileNames, Len(FileNames) - 2))


Last edited by sa on Wed Feb 03, 2010 17:45; edited 1 time in total
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed Feb 03, 2010 17:06    Post subject: Reply with quote

sa wrote:
Скорее всего, достаточно добавить символ перевода строки chr(10)

Ага, почти, только в конце списка каретка появляется.) С одним файлом та же история.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы All times are GMT + 4 Hours
Goto page 1, 2, 3, 4, 5, 6  Next
Page 1 of 6

 
Jump to:  
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