Показать полную графическую версию : [решено] Создание папки под переменным именем
monlogin
07-11-2010, 18:23
Задача заключается в том, что бы *.bat файл по окончанию уже заданных ему функций, умел создавать в директории d:\abc\ папку под именем её и непосредственного и опосредованного номера в этой директории. Т.е. если прошлая созданная папка имеет имя "999", то новая создается под именем "1000" (999+1=1000)
Или, название новой папки может содержать дату+время ее создания с точностью до секунды т.к. использоваться BATник будет очень часто.
Подойдут оба варианта, заранее Спасибо!
kiripanda
07-11-2010, 19:09
for /f "tokens=1,2,3,4,5,6,7 delims=/:-,." %%a in ("%date%:%time%") do md "%%c-%%b-%%a_%%d-%%e-%%f"
megaloman
07-11-2010, 19:15
Если дата в системе в формате дд.мм.гггг и время ЧЧ.ММ.СС,дс то в указанной папке (здесь D:\Delete) создастся подпапка с именем ггггммдд_ЧЧММСС Set Where=D:\Delete
Set NameDir=%Where%\%Date:~6,4%%Date:~3,2%%Date:~0,2%_%Time:~0,2%%Time:~3,2%%Time:~6,2%
Md "%NameDir%"
monlogin
07-11-2010, 19:15
Огромное спасибо!
megaloman
07-11-2010, 20:19
Если в папке директории только с именами, соответствующими номерам, то поддиректорию с номером на 1 больше максимально существующей можно создать как Set Where=D:\Delete
Set /A MaxNum=1-1
FOR /F "usebackq delims=" %%i IN (`Dir /B /A:D %Where%`) DO Call :CounMax %%i
Md "%Where%\%MaxNum%"
GoTo :Eof
:CounMax
if %1 GEQ %MaxNum% Set /A MaxNum=%1+1
GoTo :Eof Или вот еще вариант Set Where=e:\Delete
SETLOCAL ENABLEDELAYEDEXPANSION
Set /A MaxNum=1-1
FOR /F "usebackq delims=" %%i IN (`Dir /B /A:D %Where%`) DO if %%i GEQ !MaxNum! Set /A MaxNum=%%i+1
Md "%Where%\%MaxNum%"
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC