Страница 2 из 3

Добавлено: Вс авг 15, 2010 18:42
KarS
gora
Действительно, нет мелькания! Ура! :D
Спасибо!

Однако, в рамках этой же темы возник ещё вопрос.
Всё выше указанное, относящееся к работе cmd, решало задачу перемещения файла, находящегося под курсором.
В случае, если выделено несколько файлов, то такой сценарий не подойдёт.
Можно ли, что-нибудь поправить, чтобы расширить функциональность приёма "Send To"?

Добавлено: Вс авг 15, 2010 18:53
Flasher
KarS писал(а):Кто бы ещё помог со скриптом (vbs
Я что-то не пойму, чем предложенный мной вариант не устроил? Как раз для выделенных файлов.
И Хелпер спецом писался под ТС и используется в большинстве скриптов на форуме.

Добавлено: Вс авг 15, 2010 19:06
GGS
KarS писал(а):если выделено несколько файлов

Код: Выделить всё

TOTALCMD#BAR#DATA
cmd /c
FOR /F "delims=" %%A IN ('type %WL') do copy "%%A" C:\test\
Wcmicons.dll,63
Копирование выделенных файлов в C:\test\

1
-1

Добавлено: Вс авг 15, 2010 19:06
KarS
Flasher
Спасибо за разъяснения. Попытаюсь объяснить своё видение.
1. Опасаюсь устанавливать на системе много программ, чтобы система работала более стабильно.
2. Чем больше программ, тем больше голова начинает болеть, у каждой свой язык, свои тонкости.
3. Учитывая, что работаю не нескольких компьютерах (дома десктоп и ноут, + на работе), то придётся копировать и настраивать среду последовательно на каждом из них.
Поэтому стремлюсь к минимализму.
А Хелпер, как я понимаю, как плагин. И делает то же, что и стандартный WSH, с которым работает стандартный VBScript. Так может, кто-то специализируется на стандартных возможностях VBScript?

Добавлено: Вс авг 15, 2010 19:15
KarS
GGS
Не знаю как, но всё получилось: и с copy, и с move, и один файл, и несколько!!!
Красота! :D
Спасибо, замечательный totalcmd и замечательный форум! :)

Добавлено: Вс авг 15, 2010 19:43
Flasher
KarS
1. А в ТС сколько у Вас плагинов, скажем? Надо думать ни одного. От Хелпера ещё ни у кого система медленней работать не стала. Или у Вас 386 ? :D
2-3. Положил в дистрибутив ТС, запустил exe-шник по разу с каждой машины и забыл.
Стремление к минимализму тут необоснованно и воспринимается как излишняя паранойя. Распакованный дистрибутив весит 47 Kb.
Рассказывать Вам, допустим, про PowerPro. nircmd, nncron и т.п. вообще не имеет смысла на данном этапе. Понимание придет с развитием.
KarS писал(а):Так может, кто-то специализируется на стандартных возможностях VBScript?
Скрипт делал Batya, лучше него и Volniy тут никто не сделает. Кое-что заменить в скрипте можно, но поскольку задача решена иначе, не вижу смысла тратить на это время.

Добавлено: Пн авг 16, 2010 17:18
KarS
Flasher
Спасибо за разъяснение.

GGS
Предложенное решение замечательно, но работает оно лишь для файлов.
Что можно подправить, чтобы вышеуказанные действия можно было делать и с каталогами?

Добавлено: Пн окт 18, 2010 17:28
KarS
Установил у себя Script Helper ActiveX for TC beta12, привязал к кнопке totalcmd v.7.55 скрипт, указанный выше от Batya http://forum.wincmd.ru/viewpost.php?p=39119, в окне параметра указал путь по-умолчанию и запустил.
Скрипт выдал ошибку

Код: Выделить всё

Сценарий:	С:\Program Files\totalcmd\Plugins\exe\tcwshelp_b12\CopyFolder.vbs
Строка: 42
Символ: 1
Ошибка: Не удается найти указанный файл.
Код: 80070002
Источник:	(null)
В чём может быть дело?

И ещё один вопрос: что нужно поправить в указанном скрипте, чтобы он выполнял перемещение, а не копирование? Просто хочу сделать две кнопки - одна на копирование, другая - на перемещение выделенных файлов и папок в папку по-умолчанию.

Добавлено: Пн окт 18, 2010 18:47
Batya
KarS
Ошибка в моём скрипте - не учёл, что путь к TC может содержать пробелы.
Вместо строки

Код: Выделить всё

WSH.Run TC & " /o /s /r=""" & SaveDir & """", 7, True
пишем

Код: Выделить всё

WSH.Run """" & TC & """ /o /s /r=""" & SaveDir & """", 7, True
KarS писал(а):И ещё один вопрос: что нужно поправить в указанном скрипте, чтобы он выполнял перемещение, а не копирование?
Вместо строки

Код: Выделить всё

TCS.SendCommand "cm_Copy"
пишем

Код: Выделить всё

TCS.SendCommand "cm_MoveOnly"

Добавлено: Вт окт 19, 2010 08:51
KarS
Batya
Спасибо за внимание к этому вопросу.
Исправление внёс (заменил указанный выше код WSH.Run TC... в двух местах скрипта), но не сработало:
1. файл под курсором скопировался не в папку, указанную в параметрах, а в папку, расположенную в панели напротив.
2. в отношении скрипта по перемещению: заменил в 47 строке "cm_MoveOnly". При проверке скрипт скопировал надлежащий переносу файл в папку, расположенную в панели напротив, а не в ту, что назначена. И не удалил исходную копию.

Добавлено: Вт окт 19, 2010 09:50
Batya
KarS писал(а):не в папку, указанную в параметрах, а в папку, расположенную в панели напротив
Путь к папке содержит пробелы? В параметрах путь стоит в кавычках?
KarS писал(а):заменил в 47 строке "cm_MoveOnly". При проверке скрипт скопировал надлежащий переносу файл
А вот это уж совсем невозможно.
Единственное, что может быть - эти файлы удерживаются какой-то программой и TC по невозможности их перенести, просто копирует.
Если вручную пытаться переместить файлы по F6 -> F2, что происходит?

Добавлено: Вт окт 19, 2010 17:14
KarS
Путь к папке содержит пробелы? В параметрах путь стоит в кавычках?
Путь без пробелов: C:\TempM\. Попробовал даже поставить в кавычки "C:\TempM\" - всё равно копируется в противоположную панель, а не в папку по-умолчанию.
Если вручную пытаться переместить файлы по F6 -> F2, что происходит?
Файл как и положено перемещается.

Может проблемы из-за особенностей работы новых Script Helper ActiveX for TC beta12 и totalcmd v.7.55?
Система у меня WinXP Pro SP3 rus. В фоне среди прочих постоянно работают nncron, ahk, менеджер буфера - clcl.

Добавлено: Вт окт 19, 2010 18:19
Batya
KarS
Для проверки добавь перед строкой

Код: Выделить всё

' Открываем в противоположной папке TC целевую папку
строку

Код: Выделить всё

MsgBox """" & TC & """ /o /s /r=""" & TargetDir & """"
Что выдаёт? Скопируй текст сообщения (Ctrl+C в диалоговом окне); вставь в текстовый редактор; скопируй только строку сообщения; вставь в командную строку TC; выполни. Текущий каталог поменялся?
KarS писал(а):заменил в 47 строке "cm_MoveOnly". При проверке скрипт скопировал
KarS писал(а):Если вручную пытаться переместить файлы по F6 -> F2, что происходит?

Файл как и положено перемещается.
Я подозреваю, что ты запускаешь не тот скрипт, что исправляешь.

Добавлено: Вт окт 19, 2010 18:28
KarS
Выполнил, всё, что предписали... Каталог поменялся на желаемый "C:\TempM\"

Добавлено: Вт окт 19, 2010 23:23
Batya
KarS
Хм... Значит, всё-таки, работает. Но тогда непонятны причины ошибочного поведения.

Попробуй в следующем куске кода

Код: Выделить всё

' Открываем в противоположной папке TC целевую папку
WSH.Run TC & " /o /s /r=""" & TargetDir & """", 7, True
' Небольшая пауза
WScript.Sleep 100
поменять 100 на бОльшее значение. Начни с заведомо очень большого - 5000 (5 секунд). Если так будет работать, можно экспериментальным путём уменьшать.

А вот причину копирования вместо перемещения я даже предположить не могу.