Как создать папку с именем текущей даты в пакетных (.bat) файлах - PullRequest
36 голосов
/ 30 марта 2011

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

Ответы [ 21 ]

2 голосов
/ 25 августа 2015

Я сижу в той же лодке, что и вы, как только я до 10 часов утра, я не могу использовать нижеприведенное, я установил свое время с 12 до 24 часов, изменил чч / мм на ЧЧ / мм. Я старался больше всего из кодов, которые я мог найти. ниже поможет хоть немного. настроить и исправить:)

Ниже может помочь также

установить ДД =% ДАТА: ~ 0,2%

установить ММ =% ДАТА: ~ 3,2%

установить ГГ =% ДАТА: ~ 8,2%

установить ГГГГ =% ДАТА: ~ 6,4%

установлено чч =% чч: = 0%

установить мм =% ВРЕМЯ: ~ 3,2%

если "% time: ~ 0,1%" == "" (заданная дата_даты = 0% времени: ~ 1,1%). Иначе заданная дата_даты =% времени: ~ 0,2%

mkdir folderdate =% date: ~ 6 %% date: ~ 3,2 %% date: ~ 0,2% _% folderdate %% time: ~ 3,2%

copy \ Makereport * .CSV \ Makereport \% folderdate% \

cd% folderdate% REM - (7zip в c: \ партия) Путь = c: \ batch

7z a Retail.zip * .CSV -pRetailPassword

CD ..

del * .csv

2 голосов
/ 25 июля 2017

Если ваша локаль имеет формат даты "DDMMYYYY", вам нужно будет установить его следующим образом:

set datestr=%date:~-4,4%%date:~3,2%%date:~-10,2%
mkdir %datestr%
1 голос
/ 23 ноября 2015

выражение %date:~p,n% возвращает n символов из позиции p в строке даты.

, если моя системная строка даты - Mon23 / 11/2015

команда% date: ~1,3% возвращает значение Mon

команда% date: ~ 10,4% возвращает значение 2015

и в сочетании с командой md (или mkdir)

команда md% date: ~ 10,4 %% date: ~ 7,2 %% date: ~ 4,2% делает каталог с именем 20151123

аналогично, если ваша строка даты в формате понедельник,23 ноября 2015 г.

команда md% date: ~ 16,4 %% date: ~ 12,3 %% date: ~ 9,2% создает каталог с именем 2015Nov23

Ifвы случайно возвращаете символы из строки даты, которые не разрешены в именах папок, или используете недопустимые значения для p и n, вы получите ошибку.Кроме того, если вы возвращаете значения, включающие \, это может создать папку в папке.

1 голос
/ 28 июля 2015

Спасибо за информацию всем, очень полезно.Мне нужно было что-то, что могло бы создавать «резервную копию» папки так же часто, как каждую минуту, в одном и том же каталоге, а также вызывать ее позже в скрипте.Вот то, что я придумал:

@ echo off

CD %userprofile%\desktop

SET Datefolder="%DATE:~4,2%-%DATE:~7,2%-%DATE:~12,2%_%time:~1,1%%time:~3,2%"

MD "%Datefolder%"

Это дает мне папку на рабочем столе пользователя, который в данный момент вошел в систему, с именем: mm-dd-yy_hmm (час минутная минута), то есть: 07-28-15_719

1 голос
/ 10 июля 2013

Это работает для меня, попробуйте:

ECHO %DATE:~7,2%_%DATE:~4,2%_%DATE:~12,2%
1 голос
/ 06 марта 2013

это более простое решение.

@ECHO OFF
set name=%date%
echo %name%
mkdir %name% 
1 голос
/ 23 декабря 2013

Вам понравится, измените его так, чтобы он соответствовал вашим требованиям.

mkdir today
Copy Desktop\test1\*.* today
setlocal enableextensions
set name=%DATE:/=_%
Rename "today" _OlddatabaseBackup_"%name%"
0 голосов
/ 17 февраля 2019

Используйте этот пакетный скрипт, созданный мной:

@echo off
title Folder Creator
color b
setlocal enabledelayedexpansion
echo Enter the folder name, you can use these codes:
echo /t - Time (eg. 16:29)
echo /d - Date (eg. 17-02-19)
echo /a - Day (eg. 17)
echo /m - Month (eg. 02)
echo /y - Year (eg. 19)
echo /f - Full Year (eg. 2019)
echo.
set /p foldername=Folder Name:
set foldername=%foldername:/t=!time:~0,5!%
set foldername=%foldername:/d=!date:~0,2!-!date:~3,2!-!date:~8,2!%
set foldername=%foldername:/a=!date:~0,2!%
set foldername=%foldername:/m=!date:~3,2!%
set foldername=%foldername:/y=!date:~8,2!%
set foldername=%foldername:/f=!date:~6,4!%
md %foldername%

Например, если вы хотите создать папку с именем даты в формате DD-MM-YY , который вы наберете " / d", но если вы хотите сделать это в формате ДД-ММ-ГГГГ , введите" / a - / m - / е »

.
0 голосов
/ 17 августа 2017
G:

cd G:/app/

mkdir %date:~7,2%%date:~-10,2%%date:~-4,4% 

cd %date:~7,2%%date:~-10,2%%date:~-4,4% 

sqlplus sys/sys as sysdba @c:/new
0 голосов
/ 24 октября 2018

Мне нужны были и дата, и время, и я использовал:

mkdir %date%-%time:~0,2%.%time:~3,2%.%time:~6,2%

, что создавало папку, которая выглядела так: 2018-10-23-17.18.34

Время приходилось объединять, поскольку оно содержало : что не разрешено в Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...