Создание папки и перемещение туда выделенных файлов

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Моторокер, Avada, CaptainFlint, Nik, d-view

AlexBiggest
Сообщения: 9
Зарегистрирован: Сб апр 19, 2014 05:37

Создание папки и перемещение туда выделенных файлов

Сообщение AlexBiggest »

Как выполнить следующую задачу:

1. В одной панели выделяем несколько файлов или ставим курсор на один файл.

2. Жмем комбинацию клавиш Ctrl-F7.

3. В другой панели создается папка с заранее заданным в скрипте именем и происходит вход в нее. Если такая папка уже есть, то сразу осуществляется вход в нее.

Если имя папки заранее не задавано в скрипте, то запрашивается ее имя.

4. Выделенные файлы (или файл, на котором стоит курсор) перемещаются в эту папку.

Надеюсь на вашу помощь.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

В этом скрипте

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

  List = .Item(0) : Path = .Item(1) : If C = 3 Then Jump = .Item(2)
меняем на

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

  List = .Item(0) : Path = .Item(1) : Folder = .Item(2)
  If C = 4 Then Jump = .Item(3)
и

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

M = Month(Date) : If Len(M) = 1 Then M = "0" & M
D = Day(Date)   : If Len(D) = 1 Then D = "0" & D
Targ = Path & Year(Date) & "." & M & "." & D & "\"
на

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

If Folder = "" Then
  L = vbNewLine
  Folder = InputBox(L&L&L&L&"Введите имя папки, " &_
  L & "куда переместится выбранное:",_
  "      Перемещение элементов в назначенный каталог")
  If Trim(Folder) = "" Then Wscript.Quit
End If : Targ = Path & Folder & "\"
Параметры в итоге такие: %WL "<путь_получателя\>" "<имя папки>" <переход в папку: 1>
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
AlexBiggest
Сообщения: 9
Зарегистрирован: Сб апр 19, 2014 05:37

Сообщение AlexBiggest »

Flasher писал(а):В этом скрипте
Код:

List = .Item(0) : Path = .Item(1) : If C = 3 Then Jump = .Item(2)

меняем на

Спасибо за быстрый ответ! Все работает просто шикарно, если ввести в параметрах путь, куда надо все перемещать. Т.е. если надо переместить в папку МОЯПАПКА указываем параметр так:

%WL "%T" МОЯПАПКА

НО! Если я хочу, чтобы путь у меня запрашивался, я вроде должен убрать МОЯПАПКА, т.е. вставляю:

%WL "%T"


В таком варианте у меня не запрашивается путь, куда все перемещать, а выдает ошибку:

Windows Script Host:

Script: C:\2\move.vbs
Line: 9
Char: 39
Error: Subscript out of range
Code: 800A0009
Source: Microsoft VBScript runtime error


Как устранить?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Нет, должно быть так: %WL "%T" "" 1
Хотя можно и как предложено, только нужно красное в 9 строке добавить: : If C = 3 Then Folder = .Item(2)
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
AlexBiggest
Сообщения: 9
Зарегистрирован: Сб апр 19, 2014 05:37

Сообщение AlexBiggest »

Flasher писал(а):Нет, должно быть так
Отлично! Теперь все работает как надо. Спасибо!
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Кнопка для версий TC 8.5 и выше с использованием утилиты TCFS2:

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

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe /ef "tcm(906,1) delay(200)
send(`^{home}~(ИМЯ)\{LEFT}`, findwnd(`TInpComboDlg`))"
%COMMANDER_PATH%\Totalcmd.exe,17
Переместить в папку ИМЯ в другой панели


-1
Если имя папки не надо запрашивать или дополнять, то для ускорения можно добавить {ENTER} после {LEFT}.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

sa
П. 3 куда в твоей кнопке делся?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Flasher
Ты про то, что в созданную папку нужно в итоге не только переместить файлы, но и непременно открыть её в другой панели? Я как-то этот момент не прочувствовал. Действительно это требуется AlexBiggest?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

sa писал(а):Действительно это требуется AlexBiggest?
Если в задаче стоит, то почему нет? Тем более с учётом реакции:
AlexBiggest писал(а):Теперь все работает как надо.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Я бы всё-таки уточнил поставленную задачу. В п.3 скорее описывается алгоритм, который бы использовал автор. Тем более, то, что указано в последнем пункте задания не очень сочетается с твоим итоговым переходом в созданную папку:
4. Выделенные файлы (или файл, на котором стоит курсор) перемещаются в эту папку.
То есть курсор по идее остаётся в исходной панели.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

sa писал(а):Я бы всё-таки уточнил поставленную задачу.
Т.е. приведённого ответа недостаточно?
sa писал(а):То есть курсор по идее остаётся в исходной панели.
На момент запуска курсор и стоит на выбранных файлах. Не вижу тут нестыковки. Переименуй на "стоял", суть не изменится.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Flasher писал(а):Переименуй на "стоял", суть не изменится.
Переместить файлы к себе – как-то это не по тоталовски.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

sa писал(а):Переместить файлы к себе
Не догадываюсь, о чём ты.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Зачем копья-то ломать: ты понял задачу по-своему, я по-своему.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Важно, что я понял её так, как хотел автор запроса.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ответить