Страница 3 из 5
Добавлено: Ср ноя 27, 2013 19:47
Tol!k
Код: Выделить всё
@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
Добавлено: Ср ноя 27, 2013 22:20
DiverNirvana
Огромное спасибо 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.
--------------------
В любом случае - спасибо большое. (сам, я бы не скоро до этого допер

)
Добавлено: Ср ноя 27, 2013 23:11
Tol!k
DiverNirvana писал(а):создавать рядом с собой
обновил код
Добавлено спустя 29 минут:
изменить вид нумерации на двухзначный
Код: Выделить всё
@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
Добавлено: Ср ноя 27, 2013 23:13
DiverNirvana
Tol!k писал(а):обновил код
Спасибо огромное - все работает как часики.

(блин... как я завидую вашим знаниям....

)
пойду грызть гранит науки на ss64.com, русских пока не нашел.
Еще раз - тысяча благодарностей.
Добавлено: Чт ноя 28, 2013 00:04
Tol!k
Добавлено: Чт ноя 28, 2013 02:59
DiverNirvana
До ру-борда добрался, осзон пока неосилил.....
Читаю все что на глаза попадается... уже нифига не соображаю....
глаза болят, спина болит..... Спасибо за наводку.
Tol!k, не сочтите за наглость,
а как бы выглядел созданный вами скрипт, еслибы имена конечных 2-ух папок должны были быть разными:
типа не Example_01 (и.т.д) а скажем Morning и Evening (к примеру)?
Всетаки, я полный ноль в скриптописании и чем больше читаю, тем меньше соображаю
Спасибо еще раз за вашу помощь.
Добавлено: Чт ноя 28, 2013 17:12
Tol!k
Morning и Evening без цифр?
Код: Выделить всё
@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
Добавлено: Чт ноя 28, 2013 18:29
DiverNirvana
Tol!k писал(а):Morning и Evening без цифр?
Да, точно так как вы сделали - Спасибо огромное.
С нумерованными одноименными коталогами вроде (только вроде

) понял а вот с разными именами.... я сколько не пытался, так ничего и не добился....
Видать не с того конца я взялся за изучение.... ни синтаксиса не понимаю, ни констант не знаю, ничего в общем, толком не знаю, все гораздо сложней чем представляется со стороны.
Большое спасибо за вашу помощь.
Добавлено: Сб янв 17, 2015 19:13
Nick
Как можно сделать, чтобы в конце текущей папки с датой, если она уже существует, то добавлялось бы, например __2, __3 и т.д.?
Добавлено: Вс янв 18, 2015 06:10
Flasher
Добавлено: Вс янв 18, 2015 18:34
Nick
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" и т.п.
Добавлено: Вс янв 18, 2015 21:34
Flasher
Про формат согласен только в части очерёдности, поправил.
Nick писал(а):И тогда, лучше бы так
Это чем же лучше, если точки дают очевидный формат? Знаки подчёркивания не воспринимаются. Если очень надо, то в 24 строке точки на них легко меняются. Переписывать скрипт под число в конце имени не вижу смысла, т.к. там совсем другой подход будет, придётся с конца строки поочерёдно проверку делать на предмет цифры. Мне не нравится этот путь. И тут речь идёт о создании папок с нуля, а не относительно имён выбранных.
Добавлено: Ср янв 21, 2015 17:50
Nick
Flasher писал(а):придётся с конца строки поочерёдно проверку делать на предмет цифры.
Так ведь, наверно, можно как-то использовать регулярное выражение вида:
Оно сразу найдет дату. Иначе получается не информативно (все папки имеют название NewFolder и дата). А так часть названия бралась бы из папки под курсором.
Добавлено: Ср янв 21, 2015 19:58
Flasher
Нет, это не годится.
1) Наличие даты - это опция.
2) Это выражение не поможет с вариантом, где, например, на конце "_bla93.285bla732.84.690".
3) Я не хочу отказываться от более быстрой маски.
4) См. посл. предложение предыдущего поста и вторую ссылку. Я зря время тратил на новый скрипт?
Неинформативность в чём заключается? Название файла/папки можно задавать любое.
Добавлено: Чт янв 22, 2015 16:37
Nick
Параметры: "%P" 1 1 1
Не получается создание папки после v1. Т.е. создаются папки вида: "Новая папка__2015_01_22__v1, а дальше ошибка. Где нужно правильно исправить?
---------------------------
Строка: 56
Символ: 18
Ошибка: Файл уже существует
---------------------------
Сложно ли изменить так, чтобы название бралось из папки (или файла) под курсором, т.е. например, до первого символа "__" слева. Тогда получилось бы так: Новая папка (имя под курсором), а дальше подставляется текущая дата (если уже есть такая папка, то дальше по счетчику)?