Вставить дату-время в имя создаваемых папки, файла, …

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
Fedor
Posts: 13
Joined: Fri 17 Jun, 2005 17:59

Вставить дату-время в имя создаваемых папки, файла, …

Post by Fedor »

Мудрые сисопы научили меня когда-то датировать временные директории, где создаешь временные файлы. Это избавляет от бесконечных директорий New, New1, !, !!, !!!, 1 и т.д., поиска в них, атакже мучительных решений о том, не пора ли стереть, нужны ли эти файлы, как отличить файлы, которые в работе, от старых и пр.

Если мне нужна временная директория, я делаю C:\ZZZ\050617, например. Старые не трогаю, только грохаю изредка большие файлы, которые могут там оказаться, чтобы освободить место.

Очень бы не помешал макрос, который создал бы такую директорию, если ее еще нет, и перешел бы на нее в активной панели.

Вероятно, это очень просто, однако нужно изучить язык макросов, что меня делать ломает, честно говоря.

Спасибо!
Last edited by HaRT on Wed 09 Jan, 2013 11:55, edited 1 time in total.
Reason: Изменён заголовок Темы
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Post by t-rex »

Прочитай хэлп по макросам, посмотри примеры. Я не уверен но вроде бы такой макрос идёт даже в поставке фара.
Roy
Posts: 51
Joined: Sat 02 Jul, 2005 00:08

Post by Roy »

REGEDIT4

[HKEY_CURRENT_USER\Software\Far\KeyMacros\Shell\ShiftF7]
"Sequence"="F7 $Date \"%j %b-%d %H.%M.%S\" Enter"
"DisableOutput"=dword:00000001
@="Create timestamp dir"


У меня это делается так. Первая цифра - это день от начала года. Мне так почему-то удобнее. :)

Можешь заменить скажем на "%Y-%m0-%d %H.%M.%S"
Roy
Posts: 51
Joined: Sat 02 Jul, 2005 00:08

Post by Roy »

Да а @ лучше заменить на "Description", так мне тоже удобнее :)
gerser
Posts: 58
Joined: Tue 11 Oct, 2005 20:13
Location: Сургут
Contact:

Post by gerser »

Сейчас лучше родить такой вариант:

Code: Select all

[HKEY_CURRENT_USER\Software\Far\KeyMacros\Shell\ShiftF7]
"Sequence"="$If (fexist(Date(\"%Y.%m0.%d\"))) Alt> $date \"%Y.%m0.%d\" Esc $Else F7 $date \"%Y.%m0.%d\" $End"
"DisableOutput"=dword:00000001
"Description"="Создать каталог с именем текущей даты или спозиционировать туда курсор, если такой уже есть"
Может, можно как-то по более нормальному спозиционировать курсор на существующую директорию?
exec228
Posts: 9
Joined: Tue 01 Jun, 2010 22:29
Has thanked: 1 time

Как создать каталог, названный "2012-10-29"?

Post by exec228 »

приветствую!

имею:
Far Manager, version 3.0 (build 2890) x86

хочу:
создать папку с текущей датой в качестве наименования (например, "20121029")

записываю макрос: "F7 a Enter"
в последний момент, когда открывается диалог завершения записи макроса, я меняю строку с "F7 a Enter" на строку
Keys("F7 $Date \"%Y%m0%d\" Enter")

На запуск такого макроса я получаю отлуп "Incorrect folders list"

Image Image Image

указание даты без формата, просто Keys("F7 $Date Enter"), не исправляет ошибки.
ранее, в фарах версий 1 и 2 я такой каталог создать мог.
нынче имею ощущение, что макрос $Date не работает.

как победить в третьем фаре :?:
Last edited by HaRT on Mon 29 Oct, 2012 11:17, edited 1 time in total.
Reason: Уплотнено по вертикали
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: Как создать каталог, названный "2012-10-29"?

Post by zg »

Code: Select all

win.CreateDir(os.date("%Y_%m_%d_%H_%M_%S")) panel.UpdatePanel(nil,1,true) panel.RedrawPanel(nil,1)
exec228
Posts: 9
Joined: Tue 01 Jun, 2010 22:29
Has thanked: 1 time

Re: Как создать каталог, названный "2012-10-29"?

Post by exec228 »

Спасибо!

Есть ли возможность оставить курсор панели на этом новом каталоге?
2useven10
Posts: 5211
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

Re: Как создать каталог, названный "2012-10-29"?

Post by 2useven10 »

или аналог того, что было

Code: Select all

Keys('F7'); print(mf.date("%Y%m0%d")); Keys('Enter')
'идеологически неправильный', но если каталог уже есть будет диалог, и нет секундной задержки перед появлением каталога в пассивной панели (если она == активной). ну и курсор там, где ожидается.
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: Как создать каталог, названный "2012-10-29"?

Post by zg »

exec228 wrote:Есть ли возможность оставить курсор панели на этом новом каталоге?
конечно есть.
exec228
Posts: 9
Joined: Tue 01 Jun, 2010 22:29
Has thanked: 1 time

Re: Макрос для создания датированной временной папки

Post by exec228 »

Каким образом?
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: Макрос для создания датированной временной папки

Post by zg »

exec228 wrote:Каким образом?
panel.GetPanelInfo/panel.GetPanelItem/panel.RedrawPanel
User avatar
SUSim
Posts: 1636
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 9 times
Been thanked: 26 times

Re: Макрос для создания датированной временной папки

Post by SUSim »

я сторонник того, что при изменении файлов/директорий пользователь должен дать утвердительный ответ:

Code: Select all

--[[1]]--Создание папки с именем = текущая дата. © SimSU
-- Назначается, например, на F7 в панелях (история в F7 всё равно мало полезна {как бы добавить исторю из создания папки в копирование и перемещение?}).
--
NameFormat="%Y_%m_%d"
--
  Keys("F7") print(os.date(NameFormat)) Keys("Home ShiftEnd")
гляньте http://forum.farmanager.com/viewtopic.php?f=15&t=7075 использовать в качестве примера можно почти всё, Лунные макросы смотрите в конце обсуждения или по ссылке первого поста.
Last edited by SUSim on Tue 30 Oct, 2012 16:13, edited 2 times in total.
SimSU ··· ·· -- ··· ··-
2useven10
Posts: 5211
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

Re: Макрос для создания датированной временной папки

Post by 2useven10 »

для os.date() %m0 это mm0
User avatar
SUSim
Posts: 1636
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 9 times
Been thanked: 26 times

Re: Макрос для создания датированной временной папки

Post by SUSim »

2useven10 wrote:для os.date() %m0 это mm0
поправил предыдущий пост, спасибо!
SimSU ··· ·· -- ··· ··-
Post Reply

Return to “Нужна помощь”