标题: [文件操作] [已解决]怎么让批处理的所有命令执行后生成日志文件? [打印本页]
作者: starzen 时间: 2011-3-25 10:54 标题: [已解决]怎么让批处理的所有命令执行后生成日志文件?
各位大虾,小弟最近初学批处理。
由于工作的特殊需要,要在批处理执行完毕后生成一个Log文件,记录所有批处理命令的执行情况,是否成功以及对多少文件执行了该命令。
还望各位高手能帮帮忙,小弟在此先谢谢各位了。
作者: batman 时间: 2011-3-25 11:16
请问楼主你自己能搞清楚在生成日志前批处理要进行的操作不?
if you know (
please tell everybody
) else (
please think again
)
作者: starzen 时间: 2011-3-25 11:45
有很多命令:
md
move
echo
...
我试了一种生成log的方法(但是这种方法只能用于"move"命令):
就是在执行"move"后面加了一个>>zz.log
zz.log里面输出了“移动了多少文件,并且也有移动文件的清单”,
但是还有一种特殊情况,就是移动一个文件,zz.log里面居然只显示“移动了几个文件”却没有"移动了哪个文件的清单"
我是想问一下,批处理有没有自带的输出log文件的命令。
作者: batman 时间: 2011-3-25 11:50
我是想问一下,批处理有没有自带的输出log文件的命令。
很抱歉,没有。。。
但是如果代码中所有的命令都是有屏幕输出信息的,就可以用重定向到文本的方法来生成log
作者: starzen 时间: 2011-3-25 12:02
好吧,谢谢前辈
作者: CrLf 时间: 2011-3-25 13:12
这样不知道可不可以,试试在代码前加上这五行:
[code]
@echo off>nul 2>nul 3>log.txt 4>log.txt
for /f "skip=5 eol= delims=" %%a in (%~s0) do (
echo %%a
cmd /c %%a
)
[code]
作者: tmplinshi 时间: 2011-3-25 16:59
本帖最后由 tmplinshi 于 2011-3-25 18:13 编辑
- @echo on 1>nul 2>nul 3>log.txt 4>&3
复制代码
放到批处理第一行。不过这样会显示命令本身。
作者: starzen 时间: 2011-3-25 17:19
这样不知道可不可以,试试在代码前加上这五行:
@echo off>nul 2>nul 3>log.txt 4>log.txt
for /f "skip=5 eol= delims=" %%a in (%~s0) do (
echo %%a
cmd /c %%a
)
zm900612 发表于 2011-3-25 13:12
看不懂,你会伤心么?~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
作者: caruko 时间: 2011-3-26 15:27
很无语,直接把echo off去掉
然后假如 这个批处理文件名是 test.bat,那么 test.bat >log.txt 就行了
或者加入批处理代码是这样
1: @echo off
2: ......
...............
100: exit
那么前后加括号
(
1: :echo off 这行去掉
2: ......
.............
100: exit
)>log.txt
作者: Batcher 时间: 2011-3-27 12:12
8# starzen
不懂就问啊,伤心有神马用?
作者: CrLf 时间: 2011-3-27 13:06
好吧,我伤透心了...^_^
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |