it-swarm.com.ru

Пакетный файл для создания папки на основе текущей даты и времени

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

Мы используем это постепенно, и это выводит папку, такую ​​как «данные 28-04-13».

Я хотел бы добавить время до конца этого, однако мой код выводит время в формате ЧЧ: ММ, что недопустимо для имени папки, так как включает двоеточие (:).

Пожалуйста, кто-то может изменить мой код, чтобы удалить:, или заменить его на «.».

Благодарю вас

@echo off & for /F "tokens=1-4 delims=/ " %%A in ('date/t') do (
set DateDay=%%A
set DateMonth=%%B
set DateYear=%%C
)

@echo off & for /F "tokens=1-4 delims=/ " %%D in ('time/t') do (
set DateTime=%%D
)

set CurrentDate=%DateDay%-%DateMonth%-%DateYear%-%DateTime%

md "F:\MobilePC\data %CurrentDate"

Ответил на мой вопрос

Итак, это был самый простой способ для меня:

set CurrentDate=%DateDay%-%DateMonth%-%DateYear%-%time:~0,2%.%time:~3,2%

Какие выходы "31-10-13-11.35"

13
TheNineteenNineties

Первые четыре строки этого кода предоставят вам надежные переменные YY DD MM YYYY HH Min Sec в XP Pro и выше.

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

@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"

set "datestamp=%YYYY%%MM%%DD%" & set "timestamp=%HH%%Min%%Sec%"
set "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
echo datestamp: "%datestamp%"
echo timestamp: "%timestamp%"
echo fullstamp: "%fullstamp%"
pause
17
foxidrive
rem replace : with .
set myTime=%time::=.%

rem remove cents of second
set myTime=%myTime:~0,-3%
7
MC ND

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

%date:~10%%date:~4,2%%date:~7,2%%time:~0,2%%time:~3,2%

Результат: 

201509141639 ( 14th sept 2015 04:39 PM )
6
Nirav Dave

http://www.dostips.com/DtTipsStringManipulation.php

Запустите поиск «Заменить подстроку».

1
Code Monkey2
 setlocal
   set "time=%time::=%"
   rem check that date has / delimeter if not replace it for valid
   md %date:/=%_%time:~0,-3%
 endlocal
0
greg zakharov

Этот код создаст папку с именем с текущей датой и временем и скопирует весь контент из папки «D:\Tally Data» в папку «08-10-2016 17 23». 

Требуется папка с именем «Tally Data» на диске D вашего компьютера (скопируйте приведенный ниже код в текстовый документ и сохраните как пакетный файл DOS).

for /f "tokens=1* delims=" %%a in ('date /T') do set datestr=%%a

set time=%TIME:~0,2%" "%TIME:~3,2%

mkdir C:\%date:/=%" "%time%\Backup

xcopy "D:\Tally Data" C:\%date:/=%" "%time%\Backup /E /S /Q /Y
0
Harikrishnan