windows中定时向不同文件写入测试日志

场景:编写脚本向不同目录中写入日志,每小时生成一个日志文件,文件名为日期+小时,文件内容为日期-时间 加测试数据。
0.脚本编写中可使用pause;作为断点调试判断某行报错;
1.判断文件夹是否存在,不存在则创建;
2.for循环使用变量及赋值时:
a.开启延迟扩展设置;
@echo off
REM 开启延迟扩展设置
setlocal enableDelayedExpansion
b.变量引用时使用!test!,不再使用常规变量%test%引用;
3.循环中打印系统时间,系统时间不会变化;
a.引用hour.bat、time.bat其他脚本,这些脚本中获取当前系统时间;
b.call time.bat 3 > set nowTime :引用time.bat脚本中第3行并设置赋值到新的变量;
4.延迟的几种方式
a.choice /t 2 /d y /n >nul 延迟2秒
b.timeout /t 10 延迟10秒
c.延迟n毫秒: echo wscript.sleep 500>%tmp%\delay.vbs&&%tmp%\delay.vbs&&del /q %tmp%\delay.vbs
5.window任务计划程序中定时任务执行中bat嵌套bat脚本:(菜单键+S,输入任务计划程序,进入图形界面,创建新任务)
a.在任务->操作->启动程序或脚本:执行脚本绝对路径+脚本文件名;
b.在任务->操作->起始于:填写几个脚本所在目录;(必须加上,否则出现单独执行顶层脚本能生效,在定时任务执行脚本不能生效)
在这里插入图片描述
c.若需要改脚本不论是否登录且最高权限运行需勾选;
在这里插入图片描述

6.定时任务执行过程中若改动脚本内容,需停止定时任务重启才生效。

代码如下:

@echo off
REM 开启延迟扩展设置
setlocal enableDelayedExpansion
::不存在文件夹则创建
if not exist D:\IIS-LOGS\01\W3SVC1\ md D:\IIS-LOGS\01\W3SVC1\
if not exist D:\IIS-LOGS\02\W3SVC1\ md D:\IIS-LOGS\02\W3SVC1\
if not exist D:\IIS-LOGS\03\W3SVC1\ md D:\IIS-LOGS\03\W3SVC1\
if not exist D:\IIS-LOGS\04\W3SVC1\ md D:\IIS-LOGS\04\W3SVC1\
if not exist D:\IIS-LOGS\05\W3SVC1\ md D:\IIS-LOGS\05\W3SVC1\
if not exist D:\IIS-LOGS\06\W3SVC1\ md D:\IIS-LOGS\06\W3SVC1\
if not exist D:\IIS-LOGS\07\W3SVC1\ md D:\IIS-LOGS\07\W3SVC1\
             
if not exist C:\inetpub\logs\LogFiles_test\08\W3SVC8 md C:\inetpub\logs\LogFiles_test\08\W3SVC8
if not exist C:\inetpub\logs\LogFiles_test\09\W3SVC8 md C:\inetpub\logs\LogFiles_test\09\W3SVC8



REM 每五分钟执行100次
REM 获取系统当前年月日
REM 格式:   %date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
REM 结果:   20120731111039   年-月-日 时:分:秒 
REM 针对首位不展示0的小时,如0-9小时,用0补位。得到结果为:00:27:22.85
FOR /l %%i IN (1,1,100) DO (

call hour.bat 1 > set nowHour
call time.bat 3 > set nowTime


REM set nowHour=%time: =0%
REM set nowTime=%date:~0,4%-%date:~5,2%-%date:~8,2% !nowHour:~0,2!:%time:~3,2%:%time:~6,2%
set "access=10.185.200.142 GET /news - 8027 - 10.185.200.113 Mozilla/5.0+(iPhone;+U;+CPU+iPhone+OS+4_3_3+like+Mac+OS+X;+en-us)+AppleWebKit/533.17.9+(KHTML,+like+Gecko)+Version/5.0.2+Mobile/8J2+Safari/6533.18.5 - 200 0 0 181"
set info=!nowTime! !access!
set filename=%date:~2,2%%date:~5,2%%date:~8,2%!nowHour:~0,2!.log

echo !info! >> D:\IIS-LOGS\01\W3SVC1\u_ex!filename!
echo !info! >> D:\IIS-LOGS\02\W3SVC1\u_ex!filename!
echo !info! >> D:\IIS-LOGS\03\W3SVC1\u_ex!filename!
echo !info! >> D:\IIS-LOGS\04\W3SVC1\u_ex!filename!
echo !info! >> D:\IIS-LOGS\05\W3SVC1\u_ex!filename!
echo !info! >> D:\IIS-LOGS\06\W3SVC1\u_ex!filename!
echo !info! >> D:\IIS-LOGS\07\W3SVC1\u_ex!filename!
echo !info! >> C:\inetpub\logs\LogFiles_test\08\W3SVC8\u_ex!filename!
echo !info! >> C:\inetpub\logs\LogFiles_test\09\W3SVC8\u_ex!filename!

REM choice /t 2 /d y /n >nul 延迟2秒
REM timeout /t 10 延迟10秒
REM 延迟n毫秒
echo wscript.sleep 500>%tmp%\delay.vbs&&%tmp%\delay.vbs&&del /q %tmp%\delay.vbs
)

hour.bat内容:(引用时在不同目录下需要绝对路径)

%time: =0%

time.bat内容:(引用时在不同目录下需要绝对路径)

set nowHour=%time: =0%
set nowTime=%date:~0,4%-%date:~5,2%-%date:~8,2% %nowHour:~0,2%:%time:~3,2%:%time:~6,2%
echo %nowTime%
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值