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

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

Добавлено: Сб апр 19, 2014 05:46
AlexBiggest
Как выполнить следующую задачу:

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

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

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

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

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

Надеюсь на вашу помощь.

Добавлено: Сб апр 19, 2014 14:25
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>

Добавлено: Сб апр 19, 2014 16:31
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


Как устранить?

Добавлено: Сб апр 19, 2014 17:08
Flasher
Нет, должно быть так: %WL "%T" "" 1
Хотя можно и как предложено, только нужно красное в 9 строке добавить: : If C = 3 Then Folder = .Item(2)

Добавлено: Сб апр 19, 2014 17:40
AlexBiggest
Flasher писал(а):Нет, должно быть так
Отлично! Теперь все работает как надо. Спасибо!

Добавлено: Вс апр 20, 2014 21:31
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}.

Добавлено: Вс апр 20, 2014 23:05
Flasher
sa
П. 3 куда в твоей кнопке делся?

Добавлено: Вс апр 20, 2014 23:30
sa
Flasher
Ты про то, что в созданную папку нужно в итоге не только переместить файлы, но и непременно открыть её в другой панели? Я как-то этот момент не прочувствовал. Действительно это требуется AlexBiggest?

Добавлено: Вс апр 20, 2014 23:56
Flasher
sa писал(а):Действительно это требуется AlexBiggest?
Если в задаче стоит, то почему нет? Тем более с учётом реакции:
AlexBiggest писал(а):Теперь все работает как надо.

Добавлено: Пн апр 21, 2014 00:20
sa
Я бы всё-таки уточнил поставленную задачу. В п.3 скорее описывается алгоритм, который бы использовал автор. Тем более, то, что указано в последнем пункте задания не очень сочетается с твоим итоговым переходом в созданную папку:
4. Выделенные файлы (или файл, на котором стоит курсор) перемещаются в эту папку.
То есть курсор по идее остаётся в исходной панели.

Добавлено: Пн апр 21, 2014 00:56
Flasher
sa писал(а):Я бы всё-таки уточнил поставленную задачу.
Т.е. приведённого ответа недостаточно?
sa писал(а):То есть курсор по идее остаётся в исходной панели.
На момент запуска курсор и стоит на выбранных файлах. Не вижу тут нестыковки. Переименуй на "стоял", суть не изменится.

Добавлено: Пн апр 21, 2014 08:24
sa
Flasher писал(а):Переименуй на "стоял", суть не изменится.
Переместить файлы к себе – как-то это не по тоталовски.

Добавлено: Пн апр 21, 2014 11:09
Flasher
sa писал(а):Переместить файлы к себе
Не догадываюсь, о чём ты.

Добавлено: Пн апр 21, 2014 11:55
sa
Зачем копья-то ломать: ты понял задачу по-своему, я по-своему.

Добавлено: Пн апр 21, 2014 13:25
Flasher
Важно, что я понял её так, как хотел автор запроса.