Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Создание папки под переменным именем (http://forum.oszone.net/showthread.php?t=190518)

monlogin 07-11-2010 18:23 1537022

Создание папки под переменным именем
 
Задача заключается в том, что бы *.bat файл по окончанию уже заданных ему функций, умел создавать в директории d:\abc\ папку под именем её и непосредственного и опосредованного номера в этой директории. Т.е. если прошлая созданная папка имеет имя "999", то новая создается под именем "1000" (999+1=1000)

Или, название новой папки может содержать дату+время ее создания с точностью до секунды т.к. использоваться BATник будет очень часто.

Подойдут оба варианта, заранее Спасибо!

kiripanda 07-11-2010 19:09 1537046

Код:

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 1537048

Если дата в системе в формате дд.мм.гггг и время ЧЧ.ММ.СС,дс то в указанной папке (здесь 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 1537050

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

megaloman 07-11-2010 20:19 1537082

Если в папке директории только с именами, соответствующими номерам, то поддиректорию с номером на 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%"



Время: 17:16.

Время: 17:16.
© OSzone.net 2001-