Windows создать папку с датой

Windows создать папку с датой

Достаточно часто необходимо создавать папку с именем равным текущей дате и затем копировать в нее, например, бэкап. Есть насколько вариантов создания такой папки:

Такая команда создаст в корне системного диска папку с именем равным текущей дате. Эта команда не сработает, если региональные установки отличны от русского и в разделителях даты используется слеш. В таком случае, поможет один из следующих скриптов:

Во втором случае, папки будут сортироваться по алфавиту.

Как вариант, можно рассмотреть добавление к имени файла текущей даты:

@echo off
for /F «tokens=1-4 usebackq delims=. » %%1 in (`date /t`) do set mydate=%%4.%%3.%%2
ren test.txt test%mydate%.txt

Имя файла test.txt будет переименовано в test2005.03.05.txt

Последние сообщения из обсуждения статьи на форуме

Необходимо написать бат файл, распаковывающий файлы архива в папки, названные их расширением.

zoNUDa
rjEugen Здравствуйте, уважаемые. С прошедшим 23.02.
Сразу оговорюсь, я не программист, просто аналогичная задача, только в имя папки нужно добавить время. Объемы — небольшие, поэтому места для таких бэкапов есть. А потеря этих файлов приводит к потере гигабайт ценной информации (кто знает eMule — поймет меня).
В bat файле пользуюсь такой командой
xcopy D:\eMule\Temp\*.met D:\eMule\bak\%DATE%\
работает, но хотелось бы оживить такой вариант:
xcopy D:\eMule\Temp\*.met D:\eMule\bak\%DATE%\%TIME%\
Из-за того, что разделители времени — «:», папка не создается.
Кто подскажет, как быть?
sweet

6,2%
echo %mytime%
rem время без точек
set mytime=%time%
set mytime=%mytime:

далее подставляй куда нужно переменную %mytime%
Имей ввиду формат времени hh:mm:ss зависит о региональных настроек, для USA будет по-другому,также как и дата.

3,2% — это этот месяц (например 05), так вот. как написать чтобы было не 05 а 04.. тоесть как написать чтобы в мае создавать папки с апрелем, в июне с маем итд..

fokk

3,2%
if «%dd%» == «04» ( set newdd=03)
rem и так далее для 01 по 12
ECHO %newdd%
pause
если на нули в номере месяца наплевать, можно проще
@echo on
set dd=%date:

3,2%
echo %dd%
set /a newdd=dd-1
if «%dd%»==»01» ( set newdd=12)
ECHO %newdd%
pause

sweet

Вопрос про скрипт Solander‘а:

Berline
:: КОД ОШИБКИ «0», ошибок нет, значит можно удалить старый бэкап.
:done
:: СЧИТАЕМ И УДАЛЯЕМ КАТАЛОГ С БЭКАПОМ, СОЗДАННЫЙ НЕДЕЛЮ НАЗАД
set T_Date=%DATE%
IF %T_DATE:

0,1%==0 (
SET /A T_DAY=%T_DATE:

1,1%) else (
SET /A T_DAY=%T_DATE:

3,1%==0 (
SET /A T_MONTH=%T_DATE:

4,1%) else (
SET /A T_MONTH=%T_DATE:

3,2%)
SET /A T_YEAR=%T_DATE:

:: ТУТ МЕНЯЕМ ЧИСЛО, ЗА СКОЛЬКО ДНЕЙ НАЗАД БУДЕМ ПОКАЗЫВАТЬ ДАТУ (до 28 дней, т.к. скрипт, при «отрицательном» дне всегда делает — 1 месяц)
SET /A T_DAY=%T_DAY%-7

IF %T_DAY% LEQ 0 SET /A T_MONTH=%T_MONTH%-1
IF %T_MONTH%== 0 SET /A T_YEAR=%T_YEAR%-1
IF %T_MONTH%== 0 SET /A T_MONTH=12
if %T_MONTH%==1 Set /A DIM=31
if %T_MONTH%==2 Set /A DIM=28
if %T_MONTH%==3 Set /A DIM=31
if %T_MONTH%==4 Set /A DIM=30
if %T_MONTH%==5 Set /A DIM=31
if %T_MONTH%==6 Set /A DIM=30
if %T_MONTH%==7 Set /A DIM=31
if %T_MONTH%==8 Set /A DIM=31
if %T_MONTH%==9 Set /A DIM=30
if %T_MONTH%==10 Set /A DIM=31
if %T_MONTH%==11 Set /A DIM=30
if %T_MONTH%==12 Set /A DIM=31
IF %T_DAY% LEQ 0 SET /A T_DAY=%T_DAY%+%DIM%
IF %T_DAY% LSS 10 SET T_DAY=0%T_DAY%
IF %T_MONTH% LSS 10 SET T_MONTH=0%T_MONTH%

:: Удалям, собственно.
echo . Removing old backup files. Please wait.
rd \\10.7.0.2\Backup_1\Рабочие_объекты\%FolderName% /s /q

net send 10.7.0.8 Резервное копирование прошло успешно!

Если папка по дате (к примеру 081110) создаётся каждый день, то всё замечательно, а если только по будням — то получаются ошибки, мол папки нет, и т.д.

Не подскажете, как организовать проверку, чтоб

IF EXIST %FolderName% (
goto ***метка туда, где удаляем папку***
) ELSE (
.
)

проверял наличие папки, если она отсутствует — делал SET /A T_DAY=%T_DAY%-7 (потом -6, -5), и до тех пор, пока не будет найдена существующая папка?

Как изменить шаблон имени новой папки в Windows 10 и как сделать, чтобы созданные папки получали в качестве имени текущую дату и время

Все создаваемые в Windows 10 папки получают стандартное имя «Новая папка», что является вполне логичным. Исключение составляет командная строка, где в качестве аргумента команде создания папки mkdir нужно передать название каталога. Имя «Новая папка» присваивается по умолчанию, но если того пожелаете, можете заменить этот шаблон своим, отредактировав один ключ в реестре. Итак, с места в карьер.

Откройте редактор реестра командой regedit и перейдите к следующей ветке:

HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer

Создайте в подразделе Explorer новый подраздел с именем NamingTemplates,

а в нём создайте обычный строковый параметр с именем RenameNameTemplate.

Кликнув по нему два раза, присвойте ему значение, которое будет служить именем для всех новых папок, создаваемых средствами Проводника.

Не забывайте только, что слеши, звездочки, знаки меньше и равно, двойные и одинарные кавычки, а также знак вопроса в именах папок использовать нельзя.

В остальном вам предоставляется полная свобода действий.

Новые настройки должны вступить в силу сразу, а если этого не произойдет, перезапустите Проводник.

Можете проверить результат, — все новые папки будут получать имя согласно прописанному в шаблоне.

В остальном ничего не изменится: каждая папка будет получать порядковый номер, иметь те же свойства и соответствующую дату создания.

Создание папки с текущей датой

Да, насчет даты создания. Можно сделать так, что каждая новая папка станет получать в качестве имени текущую дату и время. Если первый трюк — просто забава, то второй способ редактирования шаблона имеет практическую ценность. Здесь нам также предстоит поработать с реестром, но сначала нужно убедиться, что в настройках формата даты не используются слеши.

Взгляните на формат даты в системном трее, — если цифры разделены точкой или дефисом, можете ничего не менять, но если в качестве разделителя используется слеш, открыв приложение Параметры и перейдя в раздел «Время и язык», на вкладке «Регион» нажмите «Изменить форматы данных».

И выставьте в меню «Краткая дата» шаблон без слешей.

На этот раз в редакторе реестра разворачиваем ветку HKCR\Directory\shell и создаем в последнем подразделе два вложенных друг в друга подраздела «Новая папка с датой» (название может быть произвольным) и «command», чтобы получилось, как на скриншоте.

Затем дважды кликаем по параметру по умолчанию в папке command и прописываем в качестве его значения команду cmd.exe /c md «%1/%%DATE%%» . В чём особенность такого решения? В том, что пункт «Новая папка с датой» будет доступен только для меню каталогов, и создаваться папка с датой будет только внутри того каталога, для которого было вызвано меню.

Если вы хотите создавать папки с датой в текущем расположении, нужно будет поработать с другой веткой реестра — HKCR\Directory\Background\shell\Создать папку с датой\command , к тому же в качестве значения параметра по умолчанию мы укажем путь к скрипту, который станет выполнять всю работу.

Готовые скрипты вы можете скачать по ссылке yadi.sk/d/CLfZrStHLk_6aQ. В архиве вы найдете три cmd-скрипта: один для создания папки с текущей датой, один — для создания папки с текущими датой и временем и еще один, в котором к дате и времени добавляются еще и секунды. Кроме того, в архиве вы найдете один скрипт VBS , о назначении которого мы расскажем ниже. Здесь же мы приводим только скриншоты содержимого этих скриптов.

Создание папки с текущими датой и временем

Здесь всё аналогично предыдущему способу. Мы так же работаем с ключом HKCR\Directory\Background\shell , создавая в нём вложенные каталоги «Создать папку с датой и временем» и «Command», смотрите скриншот, только содержимое скрипта будет немного иное.

В результате в контекстном меню у вас появится еще один пункт, при выборе которого в текущей директории станет создаваться папка с настоящей датой и временем.

Единственное, что может омрачить всю эту картину — появление на долю секунды окна командной строки. Если вас это не смущает, пожалуйста, можете оставить всё как есть. Если же хотите, чтобы создание папок выполнялось в скрытом режиме, воспользуйтесь тем самым VBS -скриптом, о котором мы упомянули выше.

В первую очередь скрипт нужно отредактировать.

Откройте его Блокнотом и замените выделенный желтым маркером путь к соответствующему CMD -скрипту вашим путем.

Теперь, помните, что мы делали в подразделах command в редакторе реестра? Правильно — прописывали в качестве значения параметра по умолчанию полный путь к CMD-файлам с командами создания папок.

Так вот, вам нужно будет заменить пути к CMD-файлам путями к сценарию VBS , обязательно добавив перед путем в кавычках wsсript.exe . Смотрите скриншот ниже.

Надеемся, этот маленький трюк вы найдете для себя полезным.

Создание папок, в качестве которых используется дата и время может значительно упростить задачи каталогизации, к тому же ничто не мешает вам переименовывать созданные директории.

Разница лишь в том, что при создании папки обычным путем Windows 10 автоматически выделяет ее имя, предлагая ввести собственное название, тогда как при создание каталога с помощью скрипта этого не происходит. К слову, поправить можно и это, найдя функцию, отвечающую за выделение только что созданного каталога и эмуляцию нажатия F2 .

Как создать папку с именем текущей даты в пакетных (.bat) файлах

Я не очень разбираюсь в синтаксисе файлов Windows .bat. Мое простое требование — создать папку в определенном месте с именем в качестве текущей даты. Я пытался найти это в Google, но не нашел хорошего варианта. Есть ли способ сделать это?

20 ответов

Попробуйте это (эквивалент обратных кавычек bash):

Для получения дополнительной информации см. http://ss64.com/nt/for_cmd.html .

Быстро и грязно: если вы можете жить с датой UTC вместо местной, вы можете использовать:

Работает во всех регионах. Только на XP и выше.

Вам нужно избавиться от символов ‘/’ в дате, прежде чем вы сможете использовать ее в mkdir следующим образом:

Если вам нужен формат mm-dd-yyyy , вы можете использовать:

Это зависит от региональных настроек компьютера, поэтому сначала проверьте вывод даты, используя командную строку или повторив дату.

Для этого создайте командный файл и добавьте приведенный ниже контент

Он производит вывод, в моем случае это показывает пт 05.06.2015.

Теперь нам нужно избавиться от косой черты (/)

Для этого включите приведенный ниже код в пакетный файл.

если вы отобразите «temp», вы можете увидеть дату без косой черты.

Теперь все, что вам нужно сделать, это отформатировать дату так, как вы хотите.

Например, мне нужна дата в формате ГГГГММДД, затем мне нужно установить имя каталога, как показано ниже

Чтобы объяснить, как это работает, нам нужно сравнить значение temp

теперь располагайте каждый символ цифрами, начинающимися с 0.

Итак, формат даты, который мне нужен, это 20150605,

Год 2015, в котором 2 находится на 8-й позиции, поэтому с 8-й позиции до 4-х он будет 2015 годом.

Месяц 06, в котором 0 находится на 6-й позиции, поэтому с 6-й позиции до 2-х он составит 06.

День 05, в котором 0 находится на 4-й позиции, поэтому с 4-й позиции до 2-х он будет 05.

Итак, чтобы окончательно настроить окончательный формат, у нас есть следующее.

Чтобы улучшить этот формат даты с помощью «-» или «_» между датой, месяцем и годом, вы можете изменить его с помощью ниже

Таким образом, окончательный код партии будет

Каталог будет создан в том месте, где выполняется этот пакет.

Читайте также:  У меня несколько папок windows
Оцените статью