您的位置:首页 > 其它

[bat][批处理][自动化测试]用批处理实现以日期和时间做文件文件夹名

2015-11-14 15:04 316 查看
在自动化测试过程中,经常需要输出log到本地,那么log文件的名称就是一个需要好好考虑的问题,文件名称要有意义,便于识别,便于管理,现在以批处理来处理日期和时间来做文件名,当然也可以做为文件夹名,这样log文件就便于管理,代码的关键是要处理日期格式中的“-”线,以及删除部分系统会在date里显示的周别,只保留日期的数字,同样,时间字符串中的“:”也需要删除。

处理日期date字符串关键代码如下:

echo %date% >1.txt

for /F "tokens=1,2,3 delims=-" %%i in (1.txt) do (

echo set date_str1=%%i%%j%%k>2.bat

)

call 2.bat

rem delete last 4 char

set date_str=%date_str1:~,-4%

日期处理原理是先把日期输出到1.txt,然后使用for循环,输出字符到2.bat,当然,输出时跳过连接符合“-”,再就是调用生成的临时批处理文件,设置date_str1的值,最好使用set date_str=%date_str1:~,-4%来删除最后的4个字符,保留剩下的有用字符。

全部代码如下:

set log_path=d:\log

set host=simpleapp

d:

if not exist %log_path% md %log_path%

cd %log_path%

if not exist %host% md %host%

cd %host%

:gen_date_sting

echo %date% >1.txt

for /F "tokens=1,2,3 delims=-" %%i in (1.txt) do (

echo set date_str1=%%i%%j%%k>2.bat

)

call 2.bat

rem delete last 4 char

set date_str=%date_str1:~,-4%

echo %time% >3.txt

for /F "tokens=1,2,3 delims=:" %%i in (3.txt) do (

echo set time_str1=%%i%%j%%k>4.bat

)

call 4.bat

set time_str=%time_str1:~,-4%

rem ********** delete "-" **********

:del_connect_char1

if "%date_str:~8%"==" " set "date_str=%date_str:~0,-1%"&goto del_connect_char1

rem ********** delete ":" **********

:del_connect_char2

if "%time_str:~8%"==" " set "time_str=%time_str:~0,-1%"&goto del_connect_char2

del 1.txt

del 2.bat

del 3.txt

del 4.bat

:gen_dest_folder

set folder=%host%_%date_str%_%time_str%

if not exist %folder% md %folder%

:gen_dest_file

set file_name=%host%_%date_str%_%time_str%.txt

echo test simple>%file_name%
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: