2014-07-16 3 views
0

Я использую этот командный файл, чтобы скопировать папку в другой каталог и переименовать ее по дате и времени. Мой формат времени: ?? ?? до полудня после полудня.Как водить выход% time% в пакетном файле?

Как мне поиграть с форматом времени в выводе имени папки? Нужно ли мне возиться с ним? или это окончательное? Ваше мнение имеет значение.

@echo off 
xcopy "c:\users\...\appdata\local\comodo\dragon\user data\*.*" "c:\users\...\temp\comodo profiles\user data\%date:/=-% %time::=-%\*.*" /s /v /e /c 

Конечным результатом является имя папки, как это: 16.07.14 16-18-51.10

+0

Вы не можете использовать ':' в имени каталога. Вы должны использовать другой символ, например '-' или' _' – pes502

ответ

0

Вы можете получить дату/время строку, которая имеет определенный и неизменный формат вместо использования locale- определены те из %date% и %time% через wmic:

for /f "skip=1" %%x in ('wmic os get localdatetime') do if not defined mydate set mydate=%%x 

Это дает что-то вроде 20120730203126.530000+120, и вы можете использовать, чтобы построить ваши имена файлов.

0

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

@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%" 

xcopy "c:\users\...\appdata\local\comodo\dragon\user data\*.*" "c:\users\...\temp\comodo profiles\user data\%fullstamp%\*.*" /s /v /e /c 
Смежные вопросы