bat脚本输出日志的方法
一,bat脚本常用的的输出命令是“echo输出内容”,可以利用echo将文本输出到cmd窗口或文件。bat脚本是不区分大小写的脚本语言,因此大小写都可以。
例如:
REM在命令行窗口输出 echoHelloWorld! pause
则会在命令行窗口输出HelloWorld!
通过bat打开命令行窗口运行上面的命令还会输出CMD运行相关的提示信息。如果想关闭多余的输出可以用@ECHOOFF,示例:
@ECHOOFF REM在命令行窗口纯净的输出 echoHelloWorld! pause
二,输出内容到文件
可以使用重定向将输出结果保存到文件中。
>符号和>>符号为两个常用的重定向符号。>会将原始文件的内容清空,>>会在文件后面追加内容,如果文件不存在则创建文件。
具体使用方法如下
echoHelloWorld>file.txt echoHelloWorld1>file.txt echoHelloWorld2>file.txt
运行后,会将HelloWorld输出到file.txt中。两行代码等价。其中1的意思是代表将标准输出重定向,标准输出即正常的输出内容。而2>file.txt则代表将错误信息输出到file.txt中,这样HelloWorld会显示在屏幕上,只有报错的信息会保存在file.txt中。
三,输出内容追加到文件
示例:
echoHelloWorld>>file.txt
上面的语句使用了2个>,表示追加内容,如果file.txt内容不是空,则HelloWorld会在最后一行的后面另起一行保存。
四,将bat文件的输出结果放到txt文件中
有时候我们会写批处理执行过程,会集中输出很多内容,又不想在bat里面频繁的试用输出到文件命令,怎么办呢?
我们可以尝试下面的办法:
@echooff call"批处理路径">D:\结果.txt startnotepadD:\结果.txt REM再例如下面这样 @echooff call"D:\procedure.bat">D:\结果.txt startnotepadD:\结果.txt
【实例】:
@ECHOOFF echo检查并停止相关服务.... echo------------------------------ for%%iin(wuauserv,yun-wps)do( scquery"%%i">nul&&( echo%date:~0,4%-%date:~5,2%-%date:~8,2%%time:~0,8%开始停止服务:%%i>>"%date:~0,4%-%date:~5,2%-%date:~8,2%_%time:~0,2%.txt" netstop"%%i" ::@ECHO开始卸载服务:%var% ::SCDELETE%var% REMnetstart"%%i" REMwmicSERVICEwherename="%%i"getState|findstr/i"RUNNING"&&(echo%%i已启动。)||(echo%%i未启动!请查看日志信息。) )||( echo%date:~0,4%-%date:~5,2%-%date:~8,2%%time:~0,8%服务不存在:%%i自动跳过>>"%date:~0,4%-%date:~5,2%-%date:~8,2%_%time:~0,2%.txt" ) ) echo执行完成 REMpause exit/B
将上面的脚本复制到txt里面,并另存为ANSI格式,重命名为:WinService-Stop.bat,然后在相同目录下新建一个txt,复制下面这段:
setws=WScript.CreateObject("WScript.Shell") ws.Run"WinService-Stop.bat",0
将上面的脚本复制到txt里面,并另存为ANSI格式,重命名为:启动bat文件.vbs,它的作用是用了静默启动bat脚本而隐藏CMD窗口,隐藏命令行窗口使用户无感知。注意两个文件在同一目录。
然后我们在“计算机-管理-任务计划程序”里面新增一个任务计划,定时执行“启动bat文件.vbs”就可以自动关闭Windows系统的自动更新啦。
总结
以上所述是小编给大家介绍的bat脚本输出日志的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!