Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.
Модераторы: d-view , Моторокер , Avada , CaptainFlint , Nik
skyinfire
Сообщения: 28 Зарегистрирован: Пн окт 10, 2011 21:13
Сообщение
skyinfire » Вт окт 11, 2011 22:22
Flasher
Благодарю, стало понятнее, но не работает.
Сделал файл copy_name.vbs на основе последнего кода:
Код: Выделить всё
'=========================================
' Копировать имена выделенных папок/файлов
' Параметр: {%L|%l|%F|%f|%D|%d}
'=========================================
Text2Clip Replace(CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0), 1).ReadAll, "\" + chr(13), chr(13))
Sub Text2Clip(pText)
Dim A
Const P = "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1407"
With CreateObject("WScript.Shell")
A = .RegRead(P)
If A > 0 Then .RegWrite P, 0, "REG_DWORD"
With CreateObject("InternetExplorer.Application")
.Navigate("about:blank")
.document.ParentWindow.ClipboardData.SetData("text"), pText
End With
If A > 0 Then .RegWrite P, A, "REG_DWORD"
End With
End Sub
повесил в меню, прописал пару команд %L, n (хотя и без них тоже ошибка).
Ошибка:
Flasher
Сообщения: 14229 Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва
Сообщение
Flasher » Вт окт 11, 2011 22:29
skyinfire
Параметр - %F.
skyinfire
Сообщения: 28 Зарегистрирован: Пн окт 10, 2011 21:13
Сообщение
skyinfire » Вт окт 11, 2011 22:32
Круто!
Остался мелкий глюк: в конце скопированного имени добавляется теперь не слешь, а ЭНТЕР (переход на другую строку). Можно пофиксить?
Flasher
Сообщения: 14229 Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва
Сообщение
Flasher » Вт окт 11, 2011 22:45
Код: Выделить всё
Text2Clip Replace(CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0), 1).ReadAll, "\" + chr(13), chr(13))заменить на
Код: Выделить всё
T = CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0), 1).ReadAll
Text2Clip Replace(Left(T, Len(T) - 2), "\" + chr(13), chr(13))И не надо забывать, что не только имени, но и имён. См. название скрипта. А перевод строки в любом случае является для списка разделителем.
sa
Сообщения: 2758 Зарегистрирован: Ср апр 29, 2009 18:56
Сообщение
sa » Вт окт 11, 2011 22:50
Flasher
Batya
А в ваших вариантах скриптов параметр %Z не пригодился бы? Например:{%L|%l|%F|%f|%D|%d}%Z
Flasher
Сообщения: 14229 Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва
Сообщение
Flasher » Вт окт 11, 2011 22:59
sa
Ну, раз не всем очевидно, добавил.
skyinfire
Сообщения: 28 Зарегистрирован: Пн окт 10, 2011 21:13
Сообщение
skyinfire » Вт окт 11, 2011 23:09
Flasher
заменил.
Теперь при копировании имен нескольких папок сразу, в конце последней появляется слешь ))
Добавлено спустя 3 минуты:
Эпизод I. Скрытая угроза
Эпизод II. Атака клонов
Эпизод III. Месть Ситхов\
Flasher
Сообщения: 14229 Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва
Сообщение
Flasher » Вт окт 11, 2011 23:27
Тогда заменить тот кусок на этот:
Код: Выделить всё
T = CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0), 1).ReadAll
T = Left(T, Len(T) - 2)
If Right(T, 1) = "\" Then T = Left(T, Len(T) - 1)
Text2Clip Replace(T, "\" + chr(13), chr(13))
Последний раз редактировалось
Flasher Вт окт 11, 2011 23:42, всего редактировалось 1 раз.
skyinfire
Сообщения: 28 Зарегистрирован: Пн окт 10, 2011 21:13
Сообщение
skyinfire » Вт окт 11, 2011 23:31
Спасибо огромное! (Могу закинуть сотню на мобильник).
А если нужно для полных путей тоже самое, то какой ключ?
Flasher
Сообщения: 14229 Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва
Сообщение
Flasher » Вт окт 11, 2011 23:38
%L, соответственно.
skyinfire писал(а): Могу закинуть сотню на мобильник
Уже не первый человек, который предлагает мне деньги за труд (в данном случае - не только мой).
Если бы все были такие щедрые, я бы тут давно разбогател.
Спасибо, не надо, на мороженое себе оставьте.
sa
Сообщения: 2758 Зарегистрирован: Ср апр 29, 2009 18:56
Сообщение
sa » Вт окт 11, 2011 23:57
Flasher писал(а): Ну, раз не всем очевидно, добавил.
Спасибо! Тоже тебе что ли сотню закинуть за это добавление…
Batya
Сообщения: 2236 Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия
Сообщение
Batya » Ср окт 12, 2011 09:36
skyinfire писал(а): в конце скопированного имени добавляется теперь не слешь, а ЭНТЕР
Исправил скрипт в исходном посте.
Нет, я не сплю. Я просто медленно моргаю.
sa
Сообщения: 2758 Зарегистрирован: Ср апр 29, 2009 18:56
Сообщение
sa » Ср окт 12, 2011 10:13
Flasher писал(а): Batya
Чтобы при постановке на [..] копировался путь к родительскому каталогу.
Заодно и скрипт не вылетает на [..].
Flasher
Сообщения: 14229 Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва
Сообщение
Flasher » Ср окт 12, 2011 10:24
sa
Ну, логично. Одно с другим не вяжется. Двух зайцев сразу.
skyinfire писал(а): А Вы вот здесь еще не поможете?
Я бы помог, если бы дело не касалось проблем самого TC, тут скриптом не поможешь. Потом посмотрю, что там.