2014-07-16 130 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 

最终的结果是一个文件夹的名字是这样的:14年7月16日16-18-51.10

+0

你不能在目录名中使用':'。您必须使用另一个字符,如'-'或'_' – pes502

回答

0

你可以得到具有确定不变的格式的日期/时间字符串,而不是使用locale-的通过wmic%date%%time%定义的:

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

它产生类似20120730203126.530000+120,你可以用它来构建你的文件名。

0

此代码的前四行将为您提供XP Pro及更高版本中可靠的YY DD MM YYYY HH Min Sec变量。

@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 
相关问题