![]() |
батник для создания папки с текущей датой + время
Добрый день, мне необходим bat файл, чтобы при его выполнении создавалась папка с текущей датой + время.
Напр: 20.01.2011 (15:43:17) команда: MD %date:~-10% создаёт только с датой. Пожалуйста, помогите решить данную проблему. |
В названии папки не допускается символ ":" - а именно этот символ присутствует в выводе содержимого переменной %time%
вот вам скрипт vbs - папку c:\temp можете поменять на любую другую On Error Resume Next strComputer = "." Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_LocalTime") For Each objItem In colItems nowday = objItem.Day nowhour = objItem.Hour nowminute = objItem.Minute nowmonts = objItem.Month nowsecond = objItem.Second nowyear = objItem.Year Next Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.CreateFolder("c:\temp\" & nowyear & nowmonts & nowday & nowhour & nowminute & nowsecond ) |
А что, файловая система с каких-то пор стала допускать наличие «:» в имени?
Код:
set sFolderName=%date% (%time:~0,-3%) |
Ivan Bardeen, Iska, Большое спасибо.
Вариант Iska мне больше подходит. |
Можно ли данный батник в контекстное меню вставить, чтобы выполнялся в любом месте, а не только где расположен?
|
Цитата:
|
Да, но хотелось бы вот так:
![]() |
Цитата:
Код:
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\Background\shell\Создать папку с текущей датой] |
OSArev,
какой параметр нужно создать? как я понял тут создать свой раздел и в этом разделе создать раздел command Код:
HKEY_CLASSES_ROOT\Directory\Background\shell\мой раздел\command Код:
HKEY_CLASSES_ROOT\Directory\Background\shell\ContextMenuHandlers |
Цитата:
Цитата:
Но... Некоторым командам, иной раз требуется дополнительные параметры. Как правило это "%1" или "%V", дописываются после пути к батнику или после команды через пробел. Так же можно создать команды контекстного меню для файлов и папок. Для всех файлов: HKEY_CLASSES_ROOT\AllFilesystemObjects\shell или HKEY_CLASSES_ROOT\*\shell Для папок: HKEY_CLASSES_ROOT\Folder\shell Извини, если, ты уже это знаешь.Может ещё кому пригодится.... PS: А, вообще про реестр - здесь, наверное не по теме. |
Нет, моя команда как была только при нажатии на папку, так и осталась там. На Рабочем столе и на пустых местах папки в контекстном меню не появилась.
У меня XP, раздела shell в Background нету...поэтому делал всё в: Код:
HKEY_CLASSES_ROOT\Directory\shell\ITEMFOLDER |
Цитата:
Я начинаю забывать добрую, проверенную ХР. Оказывается там такой вариант не прокатывает.Я тут "погуглил"немного,(кстати, а тебе ,что лень?), и нашел, сразу в первой строке: http://tuning-xp.ucoz.ru/index/0-21 Полистай, если сильно требуется, а вообще я раньше пользовался какой-то прогой(не помню названия), так в ней предлагаются не только прописанные пункты, но и возможность добавления(неограниченнного) своих комманд.Т.е.Прописал команду, например: mkdir %date% %time:~0,-3% Желаю успехов.Если пойдёш путём редактирования "Shell32.dll", дай знать - интересно, как у тебя получится. |
Цитата:
Начиная с (%time:~0,-3%) ? Спасибо ! |
Код:
%time:~0,-3% Код:
%sFolderName::=-% Код:
%<имя переменной окружения>:<что меняем>=<на что меняем>% |
Добрый день, помогите пожалуйста правильно внедрить переменную %date% в листинг моего батника:
PHP код:
|
Цитата:
Код:
MD "cigi_PMI [%DATE%]" |
PHP код:
кстати, переменную %DATE% внедрить не получилось т.к. папку cigi_PMI создает скрипт doit.vbs. а если в нем подправить листинг и сделать так, чтобы папка создавалась с текущей датой (к примеру cigi_PMI [22.04.11]) то возможно ли каким то образом научить батник находить эту папку (у которой название будет меняться по крайней мере раз в день :) )и уже работать с ней на этапе: PHP код:
|
Здравствуйте, а есть возможность сделать так, чтоб батник каждый день создавал, папки в таком варианте C:\Ftp\smtp\2015\04\20
т.е с каждым месяцем, на месяц новую папку и с каждым днем, так же на каждый день новую папку |
irshat, выбирайте:
Код:
@ 2>nul md "C:\Ftp\smtp\%date:~6,4%\%date:~3,2%\%date:~,2%" Код:
@ 2>nul md "C:\Ftp\smtp\%date:~-4%\%date:~-7,2%\%date:~-10,2%" Код:
@for /f "tokens=1-3 delims=.-/" %%i in ("%date%") do @ 2>nul md "C:\Ftp\smtp\%%k\%%j\%%i" Код:
@for /f "tokens=1-3 delims=.-/ " %%i in ('date/t') do @ 2>nul md "C:\Ftp\smtp\%%k\%%j\%%i" Обратите внимание на разницу в написании третьего и четвёртого вариантов: в последнем в перечень возможных разделителей добавляется ещё и пробел, так как вывод команды "date/t" в отличие от строки "%date%" оканчивается на пробел. В PowerShell ещё проще: Код:
New-Item ('C:\Ftp\smtp\'+(Get-Date -format 'yyyy\\MM\\dd')) -ItemType 'Directory' -Force только нельзя забывать, что буквы "M" должны быть в верхнем регистре, а буквы "y" и "d" -- в нижнем. |
Цитата Georgio:
@ 2>nul md "C:\Ftp\smtp\%date:~6,4%\%date:~3,2%\%date:~,2%" » от души, как раз то что надо и как сам не догадался, вроде об этих командах и так знал |
Пишу этот код
set sFolderName=...\%date% md "%sFolderName::=-%" Папка создается формата 05.02.2018 и в ней файлы, которые копирую меняю на md "%sFolderName:.=-%" создается папка формата 05-02-2018 (как мне и надо), а вот файлы копируются туда где лежит батник ((, что не так? И еще вопрос: как поменять формат даты на yyyy-mm-dd Сам разобрался. Если кому надо: set sFolderName=...\%date:~6,4%-%date:~3,2%-%date:~,2% md "%sFolderName%" |
j-onson,
Чтобы не думать о формате отображения даты-времени в системе предлагаю использовать WMIC, хоть это и медленнее
Здесь представлено использование WMIC и примеры формирования даты в нужном Вам виде. Также пример создания нужной выходной папки с датой и пример копирования туда файлов. В боевом варианте, естественно, перед Md и Copy уберите Echo Код:
@Echo Off |
Цитата:
|
часто использую такой код
Код:
:DateTime |
Время: 23:23. |
Время: 23:23.
© OSzone.net 2001-