22
2015
01

批处理获取当前时间

set hh=%time:~0,2%

if /i %hh% LSS 10 (set hh=0%time:~1,1%)

echo %hh%

set file=%date:~0,4%%date:~5,2%%date:~8,2%%hh%%time:~3,2%

echo %file%

pause


参考资料:

批处理获取当前时间(二)

rem CODE BY t0nsha 

rem 关于提取date,time输出结果的一个批处理 

rem “:”(冒号)和“~”波浪号必不可少! 

rem “~”后的数字:为正数表示舍弃输出结果的前几位;直接跟负数表示取到输出结果的后第几位。 

rem “,”后的数字:为正数表示取到输出结果的前第几位;为负数表示舍弃输出结果的后几位。 

echo %date% 

echo %date:~4% 

::下行表示舍弃前0位,取到第10位(即取输出结果的前10位) 

echo %date:~0,10% 

echo %date:~4,-5% 

pause 

echo %time% 

echo %time:~-3% 

echo %time:~2,-3% 

pause 

echo %date:~4% %time:~0,-3% 

pause




BTW


使用批处理产生日期(时间)文件、文件夹 帮别人整Sql     server自动备份

发现无法使用网络映射驱动器作为备份文件存放路径

而本机磁盘空间实在是不够

于是决定在本机只备份最新2天数据

再写个批处理,做成系统调度

每周将备份数据复制到网络驱动器上存档


从网上搜到批处理产生日期文件的办法

下面是实现的比较好的


批处理文件:

@echo off

set aFile=bak-%DATE:~4,4%%DATE:~9,2%%DATE:~12,2%

set bFile=bak-%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%

set cFile=bak-%DATE%

echo Afile=%aFile%

echo Bfile=%bFile%

echo Cfile=%cFile%


输出:

Afile=bak-20061219

Bfile=bak-113202

Cfile=bak-星期二 2006-12-19


于是备份bat就好写了

@echo off

echo 正在备份数据到网络驱动器。。。

set folder=%DATE%

md "y:\%folder%"

copy d:\DataBak\*.BAK "y:\%folder%"

echo 备份完毕。


------------------------------------------------------------------------------------------------------

@echo off

set AFile=bak-%DATE:~4,4%%DATE:~9,2%%DATE:~12,2%

set BFile=bak-%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%

echo AFile=%AFile%.rar

echo BFile=%BFile%.rar



运行此批处理的结果:

AFile=bak-20060109.rar ------- 年月日 -- 8位

BFile=bak-140650.rar ---------- 时分秒 -- 6位


另:如果小时数只有一位数字,造成中间有空格而出错的问题,请使用如下方法补0

set hh=%time:~0,2%

if /i %hh% LSS 10 (set hh=0%time:~1,1%)




« 上一篇下一篇 »

相关文章:

评论列表: