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, 3, 4, 5  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Wed Nov 27, 2013 19:47    Post subject: Reply with quote

Code:
@echo off &setlocal enableextensions

set "Folder=%%Year%%\TEST-%%N\Example_%%M"
set /a cntN=70
set /a cntM=2

call :Year
for /l %%N in (1,1,%cntN%) do (
   for /l %%M in (1,1,%cntM%) do (
      call 2>nul md "%Folder%"
   )
)
goto :eof

:Year
::   date DD.MM.YY
for /f "tokens=3 delims=-/." %%y in ("%date%") do set /a Year=20%%y
if %Year% GTR 200000 set /a Year=Year-200000
goto :eof

сохрани как .cmd


Last edited by Tol!k on Wed Nov 27, 2013 22:44; edited 1 time in total
Back to top
View user's profile Send private message
DiverNirvana



Joined: 27 Nov 2013
Posts: 5
Location: Ireland

Post (Separately) Posted: Wed Nov 27, 2013 22:20    Post subject: Reply with quote

Огромное спасибо Tol!k.

Необходимые 70 папок и что самое главное 2 вложенных в каждую из них, исправно создаются в корне диска с которого был запущен *cmd.
Пока не получилось , научить скрипт создавать рядом с собой папку с датой и уже в ней создавать все остальное (хотя вроде в самом скрипте все для этого есть).
--------------------
Пытаюсь получить что-то вроде этого (Не могу прилепить изображение, было бы нагляднее).
2013\
|__TEST-01\
| |____Example_1
| |____Example_2
|__TEST-02\
| |____Example_1
| |____Example_2
|__TEST-03\
| |____Example_1
| |____Example_2
|
|
--------------------
и ни как не соображу где изменить вид нумерации на двухзначный,
типа не 1 а 01.
--------------------
В любом случае - спасибо большое. (сам, я бы не скоро до этого допер Embarassed )
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Wed Nov 27, 2013 22:43    Post subject: Reply with quote

DiverNirvana wrote:
создавать рядом с собой

обновил код

Добавлено спустя 29 минут:

Quote:
изменить вид нумерации на двухзначный

Code:
@echo off &setlocal enableextensions

set "Folder=%%Year%%\TEST-%%N%%\Example_%%M%%"
set /a cntN=70
set /a cntM=2

call :Year
for /l %%n in (1,1,%cntN%) do (
   set /a N=100%%n &call set N=%%N:~-2%%
   for /l %%m in (1,1,%cntM%) do (
      set /a M=100%%m &call set M=%%M:~-2%%
      call 2>nul md "%Folder%"
   )
)
goto :eof

:Year
::   date DD.MM.YY
for /f "tokens=3 delims=-/." %%y in ("%date%") do set /a Year=20%%y
if %Year% GTR 200000 set /a Year=Year-200000
goto :eof


Last edited by Tol!k on Wed Nov 27, 2013 23:14; edited 1 time in total
Back to top
View user's profile Send private message
DiverNirvana



Joined: 27 Nov 2013
Posts: 5
Location: Ireland

Post (Separately) Posted: Wed Nov 27, 2013 23:13    Post subject: Reply with quote

Tol!k wrote:
обновил код


Спасибо огромное - все работает как часики. Very Happy Very Happy Very Happy
(блин... как я завидую вашим знаниям.... Embarassed )

пойду грызть гранит науки на ss64.com, русских пока не нашел.
Еще раз - тысяча благодарностей.
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Thu Nov 28, 2013 00:04    Post subject: Reply with quote

Quote:
русских пока не нашел
русских форумов? на осзоне есть, на ру-борде 2 темы

http://forum.oszone.net/forum-102.html
http://forum.ru-board.com/topic.cgi?forum=5&topic=33080#1


Last edited by Tol!k on Fri Nov 29, 2013 01:22; edited 1 time in total
Back to top
View user's profile Send private message
DiverNirvana



Joined: 27 Nov 2013
Posts: 5
Location: Ireland

Post (Separately) Posted: Thu Nov 28, 2013 02:59    Post subject: Reply with quote

До ру-борда добрался, осзон пока неосилил.....
Читаю все что на глаза попадается... уже нифига не соображаю....
глаза болят, спина болит..... Спасибо за наводку.
Tol!k, не сочтите за наглость,
а как бы выглядел созданный вами скрипт, еслибы имена конечных 2-ух папок должны были быть разными:
типа не Example_01 (и.т.д) а скажем Morning и Evening (к примеру)?
Всетаки, я полный ноль в скриптописании и чем больше читаю, тем меньше соображаю Embarassed

Спасибо еще раз за вашу помощь.
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Thu Nov 28, 2013 17:12    Post subject: Reply with quote

Morning и Evening без цифр?
Code:
@echo off &setlocal enableextensions

set "Folder=%%Year%%\TEST-%%N%%\%%Name%%"
set /a cntN=70
set "Names=Morning;Evening;Blah Blah Blah"

call :Year
for /l %%n in (1,1,%cntN%) do (
   set /a N=100%%n &call set N=%%N:~-2%%
   call :Name "%Names%"
   )
)
goto :eof

:Name
for /f "tokens=1,* delims=;" %%a in ("%~1") do (
   set "Name=%%~a"
   call 2>nul md "%Folder%"
   if not "%%~b"=="" call :Name "%%b"
)
goto :eof

:Year   ::   date DD.MM.YY
for /f "tokens=3 delims=-/." %%y in ("%date%") do set /a Year=20%%y
if %Year% GTR 200000 set /a Year=Year-200000
goto :eof
Back to top
View user's profile Send private message
DiverNirvana



Joined: 27 Nov 2013
Posts: 5
Location: Ireland

Post (Separately) Posted: Thu Nov 28, 2013 18:29    Post subject: Reply with quote

Tol!k wrote:
Morning и Evening без цифр?

Да, точно так как вы сделали - Спасибо огромное. Very Happy
С нумерованными одноименными коталогами вроде (только вроде Embarassed ) понял а вот с разными именами.... я сколько не пытался, так ничего и не добился....
Видать не с того конца я взялся за изучение.... ни синтаксиса не понимаю, ни констант не знаю, ничего в общем, толком не знаю, все гораздо сложней чем представляется со стороны.

Большое спасибо за вашу помощь.
Back to top
View user's profile Send private message
Nick



Joined: 26 Dec 2014
Posts: 107

Post (Separately) Posted: Sat Jan 17, 2015 20:13    Post subject: Reply with quote

Как можно сделать, чтобы в конце текущей папки с датой, если она уже существует, то добавлялось бы, например __2, __3 и т.д.?
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Sun Jan 18, 2015 07:10    Post subject: Reply with quote

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



Joined: 26 Dec 2014
Posts: 107

Post (Separately) Posted: Sun Jan 18, 2015 19:34    Post subject: Reply with quote

Flasher
Ну, если через скрипт делать, то м.б. так:
Формат даты yyyy_MM_dd (такой формат более удобен для сортировки файлов и папок).
Системнй формат времени dd.MM.yyyy, поэтому в строке 23
Code:
Left(D, 5)
"Left(D, 5)" выводится сначала день, потом месяц. А месяц находится посередине, обрезкой даты это не сделать.
И тогда, лучше бы так:
Есть, например папка Firefox_2015_01_10 (м.б. и Firefox_2015_01_10_v5). Встав на эту папку, а потом запустив скрипт хотелось бы, чтобы получилось Firefox_2015_01_18, а далее Firefox_2015_01_18__v2 и т.д. Но, названия - разные, т.е. мб. "Opera_blink_2015_01_10_v3" и т.п.
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Sun Jan 18, 2015 22:34    Post subject: Reply with quote

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



Joined: 26 Dec 2014
Posts: 107

Post (Separately) Posted: Wed Jan 21, 2015 18:50    Post subject: Reply with quote

Flasher wrote:
придётся с конца строки поочерёдно проверку делать на предмет цифры.
Так ведь, наверно, можно как-то использовать регулярное выражение вида:
Code:
\d{4}_\d{2}_\d{2}
Оно сразу найдет дату. Иначе получается не информативно (все папки имеют название NewFolder и дата). А так часть названия бралась бы из папки под курсором.
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Wed Jan 21, 2015 20:58    Post subject: Reply with quote

Нет, это не годится.
1) Наличие даты - это опция.
2) Это выражение не поможет с вариантом, где, например, на конце "_bla93.285bla732.84.690".
3) Я не хочу отказываться от более быстрой маски.
4) См. посл. предложение предыдущего поста и вторую ссылку. Я зря время тратил на новый скрипт?
Неинформативность в чём заключается? Название файла/папки можно задавать любое.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Nick



Joined: 26 Dec 2014
Posts: 107

Post (Separately) Posted: Thu Jan 22, 2015 17:37    Post subject: Reply with quote

Параметры: "%P" 1 1 1
Не получается создание папки после v1. Т.е. создаются папки вида: "Новая папка__2015_01_22__v1, а дальше ошибка. Где нужно правильно исправить?
---------------------------
Строка: 56
Символ: 18
Ошибка: Файл уже существует
---------------------------
Сложно ли изменить так, чтобы название бралось из папки (или файла) под курсором, т.е. например, до первого символа "__" слева. Тогда получилось бы так: Новая папка (имя под курсором), а дальше подставляется текущая дата (если уже есть такая папка, то дальше по счетчику)?


Last edited by Nick on Fri Jan 23, 2015 17:38; edited 1 time in total
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, 3, 4, 5  Next
Page 3 of 5

 
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