Создание папки с выделенными файлами

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

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

_ded_
Сообщения: 5
Зарегистрирован: Пт янв 09, 2015 12:11
Откуда: CCCP

Сообщение _ded_ »

helb писал(а):...недавно слепил скрипт и повесил на Shift+F7. Создает каталог и перемещает выделенное в него...
Спасибо, повесил на кнопку, буду пользоваться. Но, поскольку функционал для меня избыточный, то позволил себе поковыряться в коде. Да простит меня helb. Мне чаще нужно просто создать папку с именем даты в формате yyyy-mm-dd. Нужное мне получилось. Опыт в скриптописании у меня маленький (очень) и устаревший. Поэтому не сомневаюсь, что можно сделать проще и, главное, правильнее. Подскажите, кто может, как поправить?

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

'=====================================================================================
' Использован код программы из http://forum.wincmd.ru/viewtopic.php?t=15544&highlight=yyyy (автор helb).
' В активной панели TC создает новую папку, в имени которой только цифры текущей даты.
' Creates new dir named with current date.
' Parameters: %WL "%T" %P%N (list, target panel, suggested name+default parent dir (in case of mixed location mode))
' 09.01.2015
'=====================================================================================
if WScript.Arguments.Count < 3 then
  MsgBox "Not enough parameters", vbOKOnly + vbError, "Warning!"
  Wscript.Quit
end if

dim list, FSO, fObj, newDir
set FSO = CreateObject("Scripting.FileSystemObject")

newDir = getDateTime(Now)
                
if not FSO.FolderExists(newDir) then
   FSO.CreateFolder(newDir)
end if

function getDateTime(dt)
    s = datepart("yyyy",dt)
    s = s & "-" & RIGHT("0" & datepart("m",dt),2)
    s = s & "-" & RIGHT("0" & datepart("d",dt),2)
    getDateTime = s
end function
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

_ded_ писал(а):можно сделать проще
Создание каталога с текущей датой в названии
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
_ded_
Сообщения: 5
Зарегистрирован: Пт янв 09, 2015 12:11
Откуда: CCCP

Сообщение _ded_ »

Flasher писал(а):...Создание каталога с текущей датой в названии
Очень хорошо! Есть где покопаться!
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

_ded_ писал(а):Есть где покопаться!
Там особо не в чем копаться. Последние более простые кнопочные решения видно?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
_ded_
Сообщения: 5
Зарегистрирован: Пт янв 09, 2015 12:11
Откуда: CCCP

Сообщение _ded_ »

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

Сообщение Flasher »

_ded_ писал(а):Последнее решение и использую.
По идее должно быть предпоследнее:
_ded_ писал(а):нужно просто создать папку с именем даты в формате yyyy-mm-dd
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
_ded_
Сообщения: 5
Зарегистрирован: Пт янв 09, 2015 12:11
Откуда: CCCP

Сообщение _ded_ »

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

Сообщение Flasher »

_ded_ писал(а):Не знаю, как это влияет на безопасность компьютера.
При чём тут безопасность? Изображение
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
_ded_
Сообщения: 5
Зарегистрирован: Пт янв 09, 2015 12:11
Откуда: CCCP

Сообщение _ded_ »

Flasher писал(а):При чём тут безопасность?
Разрешение выполнять скрипты уменьшает безопасность.
Утилита Nircmd разрешает выполнение скрипта, но что ещё она разрешает я не знаю.
Незнание опасно
(ИМХО) :-)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

_ded_ писал(а):Утилита Nircmd разрешает выполнение скрипта
Какого скрипта? Она может вызвать скрипт, как его можно вызвать из обычной комстроки, но как это относится к безопасности, я не понимаю, как не понимаю и то, чем она опаснее cmd. Паранойя? :) А наделать глупостей при желании можно с любой многофункциональной программой.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Iori
Сообщения: 552
Зарегистрирован: Ср апр 25, 2012 20:33

Сообщение Iori »

helb писал(а):Вообще как раз недавно слепил скрипт и повесил на Shift+F7. Создает каталог и перемещает выделенное в него.
helb, что у вас нужно в скрипте изменить, что бы можно было назначить новое имя папки в параметрах кнопки. То есть что бы не каждый раз появлялся диалог с запросом на имя папки.
Типо: %WL "%P" "Имя Папки"
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Iori
Попробуй такой:

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

'======================== VBS ========================
' Копирование/перемещение выбранного по заданному пути
'
' Условие:    путь запуска — пустой
' Примечание: в пути достаточно правильной буквы диска
'
' Параметры: %WF "<путь назначения>" <copy/move>
'
' Примеры:   %WF "%PMy Folder" copy
'            %WF D:\New\New2\New3\New4\New5 move
'=====================================================
Set A = WSH.Arguments : If A.Count = 0 Then WSH.Quit
Set FSO = CreateObject("Scripting.FileSystemObject")
With CreateObject("Shell.Application")
  D = FSO.GetDriveName(A(1))
  .NameSpace(D).NewFolder Mid(A(1), Len(D) + 2)
  List = Replace(FSO.OpenTextFile(A(0),,,-1).ReadAll, vbCrLf, ";")
  Set Items = .NameSpace(FSO.GetAbsolutePathName("")).Items
  Items.Filter 73952, Replace(Left(List, Len(List) - 1), "\", "")
  Execute ".NameSpace(A(1))." & A(2) & "Here Items, 4120"
End With
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Iori
Сообщения: 552
Зарегистрирован: Ср апр 25, 2012 20:33

Сообщение Iori »

Flasher писал(а): Попробуй такой:
Ты как всегда на высоте. :D Отличный скрипт.
Спасибо огромное. Всегда выручаешь.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Iori писал(а): что бы можно было назначить новое имя папки в параметрах кнопки
В теме предлагалась кнопка, где имя назначается, а не запрашивается.
Iori
Сообщения: 552
Зарегистрирован: Ср апр 25, 2012 20:33

Сообщение Iori »

sa писал(а):В теме предлагалась кнопка, где имя назначается, а не запрашивается.
Да я знаю про эту кнопку, но по мне конечно лучше когда кнопка без сторонних программ.
Ответить