- Windows создать папку с датой
- Как изменить шаблон имени новой папки в Windows 10 и как сделать, чтобы созданные папки получали в качестве имени текущую дату и время
- Создание папки с текущей датой
- Создание папки с текущими датой и временем
- Как создать папку с именем текущей даты в пакетных (.bat) файлах
- 20 ответов
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% далее подставляй куда нужно переменную %mytime% |
fokk |
sweet |
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.
Итак, чтобы окончательно настроить окончательный формат, у нас есть следующее.
Чтобы улучшить этот формат даты с помощью «-» или «_» между датой, месяцем и годом, вы можете изменить его с помощью ниже
Таким образом, окончательный код партии будет
Каталог будет создан в том месте, где выполняется этот пакет.