执行批处理时,怎么将指定内容输出到文件中?

比如我现在有一个批处理文件test1.bat,可正常使用正常输出内容到一个文本文件test1.txt,因为当前输出的日志较多,所想输出指定的日志,比如输出内容中会出现:-... 比如我现在有一个批处理文件test1.bat,可正常使用正常输出内容到一个文本文件test1.txt,因为当前输出的日志较多,所想输出指定的日志,
比如输出内容中会出现:
----------------
已生成:123
找不到:456
xxx update .
文件1
文件2
文件3
----------------
我的需求是,只将“找不到:”这一行和xxx update .下面的文件名输出到Test1.txt中,其它就不要了,不然文件会很大。
to ningfengx:本来想采纳你的回答,但是你的回答有个问题,就是如果查找“update”时,下面再出现“已生成”则依然会把已生成也找出来,所以,你的答案即便在日志完成时进行过滤,也不是最好的。
to wltt421:这位朋友的问题就更多了,首先,不会输出到文本,也不显示黑色窗口。我加了pause后看了下,你的答案在找Update时,多加了个点,且只显示update那一行,但我的需求是update的文件不是出现在同一行,而是下一行,所以也有不能解决我的问题。
不过还是很感谢两们的回答。
展开
 我来答
ningfengx
2011-01-25 · TA获得超过1195个赞
知道小有建树答主
回答量:1706
采纳率:0%
帮助的人:896万
展开全部
假设输出内容在user.txt中,运行下面代码你看看test1.txt是不是你想要的。若不对你补充下问题?
@echo off
for /f "delims=:. skip=1 tokens=1,2" %%i in (user.txt) do echo %%i %%j >>test1.txt
pause
=======
那好吧,你试试
@echo off
findstr /v "已生成:" user.txt >>TEST2.TXT
pause
::findstr /v 只打印不包含匹配的行。所以user.txt中所有包含"已生成:"的行都会跳过。
wltt421
推荐于2018-04-05 · TA获得超过440个赞
知道小有建树答主
回答量:304
采纳率:0%
帮助的人:266万
展开全部
::哦,原来没听懂你的意思,但看了你的补充就懂了。
::我把答案修改了下,你看对不对:

@echo off
findstr "找不到." user.txt
for /f "skip=2 delims=[]" %%a in ('find /n /i "update" user.txt') do set k=%%a
for /f "skip=%k%" %%a in (user.txt) do echo %%a

::会输出 “找不到” 这一行和 update 下面所有的行。
::user.txt 就是日志。你可以先用命令把输出的内容先写进去,再用这个命令提取。

::这下对了吧?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式