View previous topic :: View next topic |
Author |
Message |
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Wed Nov 27, 2013 19:47 Post subject: |
|
|
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 |
|
|
DiverNirvana
Joined: 27 Nov 2013 Posts: 5 Location: Ireland
|
(Separately) Posted: Wed Nov 27, 2013 22:20 Post subject: |
|
|
Огромное спасибо 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.
--------------------
В любом случае - спасибо большое. (сам, я бы не скоро до этого допер ) |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Wed Nov 27, 2013 22:43 Post subject: |
|
|
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 |
|
|
DiverNirvana
Joined: 27 Nov 2013 Posts: 5 Location: Ireland
|
(Separately) Posted: Wed Nov 27, 2013 23:13 Post subject: |
|
|
Спасибо огромное - все работает как часики.
(блин... как я завидую вашим знаниям.... )
пойду грызть гранит науки на ss64.com, русских пока не нашел.
Еще раз - тысяча благодарностей. |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
|
Back to top |
|
|
DiverNirvana
Joined: 27 Nov 2013 Posts: 5 Location: Ireland
|
(Separately) Posted: Thu Nov 28, 2013 02:59 Post subject: |
|
|
До ру-борда добрался, осзон пока неосилил.....
Читаю все что на глаза попадается... уже нифига не соображаю....
глаза болят, спина болит..... Спасибо за наводку.
Tol!k, не сочтите за наглость,
а как бы выглядел созданный вами скрипт, еслибы имена конечных 2-ух папок должны были быть разными:
типа не Example_01 (и.т.д) а скажем Morning и Evening (к примеру)?
Всетаки, я полный ноль в скриптописании и чем больше читаю, тем меньше соображаю
Спасибо еще раз за вашу помощь. |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Thu Nov 28, 2013 17:12 Post subject: |
|
|
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 |
|
|
DiverNirvana
Joined: 27 Nov 2013 Posts: 5 Location: Ireland
|
(Separately) Posted: Thu Nov 28, 2013 18:29 Post subject: |
|
|
Tol!k wrote: | Morning и Evening без цифр?
|
Да, точно так как вы сделали - Спасибо огромное.
С нумерованными одноименными коталогами вроде (только вроде ) понял а вот с разными именами.... я сколько не пытался, так ничего и не добился....
Видать не с того конца я взялся за изучение.... ни синтаксиса не понимаю, ни констант не знаю, ничего в общем, толком не знаю, все гораздо сложней чем представляется со стороны.
Большое спасибо за вашу помощь. |
|
Back to top |
|
|
Nick
Joined: 26 Dec 2014 Posts: 107
|
(Separately) Posted: Sat Jan 17, 2015 20:13 Post subject: |
|
|
Как можно сделать, чтобы в конце текущей папки с датой, если она уже существует, то добавлялось бы, например __2, __3 и т.д.? |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Jan 18, 2015 07:10 Post subject: |
|
|
Nick, сделал нативно - в скобках, по аналогии. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Nick
Joined: 26 Dec 2014 Posts: 107
|
(Separately) Posted: Sun Jan 18, 2015 19:34 Post subject: |
|
|
Flasher
Ну, если через скрипт делать, то м.б. так:
Формат даты yyyy_MM_dd (такой формат более удобен для сортировки файлов и папок).
Системнй формат времени dd.MM.yyyy, поэтому в строке 23
"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 |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Jan 18, 2015 22:34 Post subject: |
|
|
Про формат согласен только в части очерёдности, поправил.
Nick wrote: | И тогда, лучше бы так | Это чем же лучше, если точки дают очевидный формат? Знаки подчёркивания не воспринимаются. Если очень надо, то в 24 строке точки на них легко меняются. Переписывать скрипт под число в конце имени не вижу смысла, т.к. там совсем другой подход будет, придётся с конца строки поочерёдно проверку делать на предмет цифры. Мне не нравится этот путь. И тут речь идёт о создании папок с нуля, а не относительно имён выбранных. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Nick
Joined: 26 Dec 2014 Posts: 107
|
(Separately) Posted: Wed Jan 21, 2015 18:50 Post subject: |
|
|
Flasher wrote: | придётся с конца строки поочерёдно проверку делать на предмет цифры. | Так ведь, наверно, можно как-то использовать регулярное выражение вида: Оно сразу найдет дату. Иначе получается не информативно (все папки имеют название NewFolder и дата). А так часть названия бралась бы из папки под курсором. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Jan 21, 2015 20:58 Post subject: |
|
|
Нет, это не годится.
1) Наличие даты - это опция.
2) Это выражение не поможет с вариантом, где, например, на конце "_bla93.285bla732.84.690".
3) Я не хочу отказываться от более быстрой маски.
4) См. посл. предложение предыдущего поста и вторую ссылку. Я зря время тратил на новый скрипт?
Неинформативность в чём заключается? Название файла/папки можно задавать любое. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Nick
Joined: 26 Dec 2014 Posts: 107
|
(Separately) Posted: Thu Jan 22, 2015 17:37 Post subject: |
|
|
Параметры: "%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 |
|
|
|