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

Создание цепочки папок из буфера обмена

Добавлено: Сб дек 31, 2016 14:46
Dimsok
Всех с Наступающим!

Задача: Создавать из буфера вида "c:\Program Files\Total Commander\" вложенные папки, т.е в данном случае будет 3 папки: С/Program Files/Total Commander. Можно, конечно через F7 но там надо будет убирать двоеточие, а мы в разделе автоматизации. C dircopy тоже нужного результата не добился, да и это тоже лишние манипуляции.

И хотелось бы ещё второй вариант - создавать папки в текущей панели не из буфера, а исходя из того, какой путь у текущей панели. То есть те 3 папки будут создаваться, если находишься в деректории "Total Commander"

Добавлено: Сб дек 31, 2016 21:03
Flasher
С наступающим!

Второе не понял. Т.е. C:\Program Files\Total Commander\C\Program Files\Total Commander ?

Добавлено: Сб дек 31, 2016 22:43
Dimsok
Второе - в текущем каталоге создавать структуру вложенных папок, последняя из которых будет та, в которой и будет это создаваться. К примеру, путь активной панели "C:\Program Files\Total Commander\", тогда в папке Total commander должно создаваться три папки: С, в ней Program Files, а в ней Total Commander.

Добавлено: Вс янв 01, 2017 01:42
Flasher
Инет пропадал. Так пойдёт?:

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

'======================= VBS =======================
' Cоздать в каталоге активной панели путь с цепочкой
' из буфера обмена при наличии, иначе из него самого

' Условие: путь запуска - пустой
'===================================================
R = "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1407"
With CreateObject("WScript.Shell")
  Dir = .CurrentDirectory : On Error Resume Next
  A = .RegRead(R): If A > 0 Or Err.Number <> 0 Then .RegWrite R, 0, "REG_DWORD"
  Path = Trim(CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text"))
  If A > 0 Then .RegWrite R, A, "REG_DWORD"
  On Error Goto 0 : If InStr(Path, ":\") <> 2 Then Path = Dir
  Dirs = Replace(Path, ":", "")
With CreateObject("Shell.Application")
  If VarType(.NameSpace(Dir & "\" & Dirs)) = 9 Then .NameSpace(Dir).NewFolder(Dirs)
End With : .SendKeys "^r" End With
Можно, конечно, и кнопками:

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

TOTALCMD#BAR#DATA
nircmd.exe execmd
set "P=%P"&&call md "%P%%P::=%%"&&nircmd.exe sendkeypress ctrl+r
wcmicons.dll,78
Продублировать цепочку активного каталога
%COMMANDER_PATH%\Utils\nircmd\

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

TOTALCMD#BAR#DATA
nircmd.exe execmd set "P=~$clipboard$"&&call md
"%P%%P::=%%"&&nircmd.exe sendkeypress ctrl+r
wcmicons.dll,77
Создать цепочку каталогов|из буфера в активной панели
%COMMANDER_PATH%\Utils\nircmd\

Добавлено: Вс янв 01, 2017 12:03
Dimsok
Пойдёт, спасибо.

Добавлено: Ср янв 25, 2017 10:07
Avada
Заголовок темы заменён более точным.