Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Создание папки с выделенными файлами
Goto page Previous  1, 2
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
_ded_



Joined: 09 Jan 2015
Posts: 5
Location: CCCP

Post (Separately) Posted: Fri Jan 09, 2015 13:44    Post subject: Reply with quote

helb wrote:
...недавно слепил скрипт и повесил на Shift+F7. Создает каталог и перемещает выделенное в него...
Спасибо, повесил на кнопку, буду пользоваться. Но, поскольку функционал для меня избыточный, то позволил себе поковыряться в коде. Да простит меня helb. Мне чаще нужно просто создать папку с именем даты в формате yyyy-mm-dd. Нужное мне получилось. Опыт в скриптописании у меня маленький (очень) и устаревший. Поэтому не сомневаюсь, что можно сделать проще и, главное, правильнее. Подскажите, кто может, как поправить?
Code:
'=====================================================================================
' Использован код программы из 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
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Jan 09, 2015 14:11    Post subject: Reply with quote

_ded_ wrote:
можно сделать проще
Создание каталога с текущей датой в названии
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
_ded_



Joined: 09 Jan 2015
Posts: 5
Location: CCCP

Post (Separately) Posted: Fri Jan 09, 2015 17:41    Post subject: Reply with quote

Flasher wrote:
...Создание каталога с текущей датой в названии
Очень хорошо! Есть где покопаться!
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Jan 09, 2015 21:13    Post subject: Reply with quote

_ded_ wrote:
Есть где покопаться!
Там особо не в чем копаться. Последние более простые кнопочные решения видно?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
_ded_



Joined: 09 Jan 2015
Posts: 5
Location: CCCP

Post (Separately) Posted: Fri Jan 09, 2015 22:36    Post subject: Reply with quote

Flasher wrote:
...Последние более простые кнопочные решения видно?
Последнее решение и использую.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Jan 09, 2015 22:56    Post subject: Reply with quote

_ded_ wrote:
Последнее решение и использую.
По идее должно быть предпоследнее:
_ded_ wrote:
нужно просто создать папку с именем даты в формате yyyy-mm-dd

_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
_ded_



Joined: 09 Jan 2015
Posts: 5
Location: CCCP

Post (Separately) Posted: Sat Jan 10, 2015 18:27    Post subject: Reply with quote

Flasher wrote:
...По идее должно быть предпоследнее...
Предпоследнее использует утилиту Nircmd. Не знаю, как это влияет на безопасность компьютера. А в последнем поменял местами yyyy и dd в формате даты.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Jan 10, 2015 20:21    Post subject: Reply with quote

_ded_ wrote:
Не знаю, как это влияет на безопасность компьютера.
При чём тут безопасность?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
_ded_



Joined: 09 Jan 2015
Posts: 5
Location: CCCP

Post (Separately) Posted: Sat Jan 10, 2015 21:55    Post subject: Reply with quote

Flasher wrote:
При чём тут безопасность?
Разрешение выполнять скрипты уменьшает безопасность.
Утилита Nircmd разрешает выполнение скрипта, но что ещё она разрешает я не знаю.
Незнание опасно
(ИМХО) Smile
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Jan 10, 2015 22:02    Post subject: Reply with quote

_ded_ wrote:
Утилита Nircmd разрешает выполнение скрипта
Какого скрипта? Она может вызвать скрипт, как его можно вызвать из обычной комстроки, но как это относится к безопасности, я не понимаю, как не понимаю и то, чем она опаснее cmd. Паранойя? Smile А наделать глупостей при желании можно с любой многофункциональной программой.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Iori



Joined: 25 Apr 2012
Posts: 551

Post (Separately) Posted: Sat Aug 19, 2017 02:30    Post subject: Reply with quote

helb wrote:
Вообще как раз недавно слепил скрипт и повесил на Shift+F7. Создает каталог и перемещает выделенное в него.


helb, что у вас нужно в скрипте изменить, что бы можно было назначить новое имя папки в параметрах кнопки. То есть что бы не каждый раз появлялся диалог с запросом на имя папки.
Типо: %WL "%P" "Имя Папки"
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Aug 19, 2017 03:36    Post subject: Reply with quote

Iori
Попробуй такой:
Code:
'======================== 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) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Iori



Joined: 25 Apr 2012
Posts: 551

Post (Separately) Posted: Sat Aug 19, 2017 05:31    Post subject: Reply with quote

Flasher wrote:

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


Ты как всегда на высоте. Very Happy Отличный скрипт.
Спасибо огромное. Всегда выручаешь.
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2567

Post (Separately) Posted: Mon Aug 21, 2017 11:13    Post subject: Reply with quote

Iori wrote:
что бы можно было назначить новое имя папки в параметрах кнопки

В теме предлагалась кнопка, где имя назначается, а не запрашивается.
Back to top
View user's profile Send private message
Iori



Joined: 25 Apr 2012
Posts: 551

Post (Separately) Posted: Mon Aug 21, 2017 20:45    Post subject: Reply with quote

sa wrote:
В теме предлагалась кнопка, где имя назначается, а не запрашивается.

Да я знаю про эту кнопку, но по мне конечно лучше когда кнопка без сторонних программ.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2
Page 2 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group