Страница 2 из 6
Добавлено: Вт окт 11, 2011 22:22
skyinfire
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 (хотя и без них тоже ошибка).
Ошибка:

Добавлено: Вт окт 11, 2011 22:29
Flasher
skyinfire
Параметр - %F.
Добавлено: Вт окт 11, 2011 22:32
skyinfire
Круто!
Остался мелкий глюк: в конце скопированного имени добавляется теперь не слешь, а ЭНТЕР (переход на другую строку). Можно пофиксить?
Добавлено: Вт окт 11, 2011 22:45
Flasher
Код: Выделить всё
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))
И не надо забывать, что не только имени, но и имён. См. название скрипта. А перевод строки в любом случае является для списка разделителем.
Добавлено: Вт окт 11, 2011 22:50
sa
Flasher
Batya
А в ваших вариантах скриптов параметр %Z не пригодился бы? Например:{%L|%l|%F|%f|%D|%d}%Z
Добавлено: Вт окт 11, 2011 22:59
Flasher
sa
Ну, раз не всем очевидно, добавил.
Добавлено: Вт окт 11, 2011 23:09
skyinfire
Flasher
заменил.
Теперь при копировании имен нескольких папок сразу, в конце последней появляется слешь ))
Добавлено спустя 3 минуты:
Эпизод I. Скрытая угроза
Эпизод II. Атака клонов
Эпизод III. Месть Ситхов\
Добавлено: Вт окт 11, 2011 23:27
Flasher
Тогда заменить тот кусок на этот:
Код: Выделить всё
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))
Добавлено: Вт окт 11, 2011 23:31
skyinfire
Спасибо огромное! (Могу закинуть сотню на мобильник).
А если нужно для полных путей тоже самое, то какой ключ?
Добавлено: Вт окт 11, 2011 23:38
Flasher
%L, соответственно.
skyinfire писал(а):Могу закинуть сотню на мобильник
Уже не первый человек, который предлагает мне деньги за труд (в данном случае - не только мой).

Если бы все были такие щедрые, я бы тут давно разбогател.

Спасибо, не надо, на мороженое себе оставьте.

Добавлено: Вт окт 11, 2011 23:57
sa
Flasher писал(а):Ну, раз не всем очевидно, добавил.
Спасибо! Тоже тебе что ли сотню закинуть за это добавление…

Добавлено: Ср окт 12, 2011 01:08
skyinfire
Да, все работает.
А Вы вот здесь еще не поможете?
http://forum.wincmd.ru/viewtopic.php?p=84666
Добавлено: Ср окт 12, 2011 09:36
Batya
skyinfire писал(а):в конце скопированного имени добавляется теперь не слешь, а ЭНТЕР
Исправил скрипт в исходном посте.
Добавлено: Ср окт 12, 2011 10:13
sa
Flasher писал(а):Batya
Чтобы при постановке на [..] копировался путь к родительскому каталогу.
Заодно и скрипт не вылетает на [..].
Добавлено: Ср окт 12, 2011 10:24
Flasher
sa
Ну, логично. Одно с другим не вяжется. Двух зайцев сразу.
skyinfire писал(а):А Вы вот здесь еще не поможете?
Я бы помог, если бы дело не касалось проблем самого TC, тут скриптом не поможешь. Потом посмотрю, что там.