Board logo

标题: [文本处理] [已解决] 把命令行显示的结果信息输出到一个文件 [打印本页]

作者: 蓝灵幽魂    时间: 2014-8-20 14:10     标题: [已解决] 把命令行显示的结果信息输出到一个文件

本帖最后由 蓝灵幽魂 于 2014-8-21 10:50 编辑

E:\Program Files\Test\Data>sux.com -m Resoce.wk LibrText.txt
error : 僼傽僀儖偑尒偮偐傝杰偣傫(LibrText.txt).
E:\Program Files\Test\Data>sux.com -m Resoce.wk messext.txt
error : 僼傽僀儖偑尒偮偐傝杰偣傫(messext.txt).
E:\Program Files\Test\Data>sux.com -m Resoce.wk MissText.txt
error : 僼傽僀儖偑尒偮偐傝杰偣傫(MissText.txt).
E:\Program Files\Test\Data>sux.com -m Resoce.wk Quext.txt
Merge 0x131A28627 in Quext.txt
E:\Program Files\Test\Data>sux.com -m Resoce.wk Interface\Strinble.txt Inter\Strinble.txt
Merge 0x135D1E06D in Inter\Strinble.txt

这个是命令结果,我想把凡是带error结果()中的信息输出成文本+失败,带Merge把文本全名输出到文本+成功

如果Merge要求不好弄的可以不做输出文本,主要是需要知道是否有error错误信息这个要对相关内容作修改! 这个命令是集成在exe里面静默运行命令的所以才需要知道处理结果内容。

希望那个大神来帮下在此万分感谢!!1
作者: Linuxer    时间: 2014-8-20 15:14

本帖最后由 Linuxer 于 2014-8-20 15:17 编辑

仔细了下,才明白你要输出的内容,嘿嘿。
作者: 蓝灵幽魂    时间: 2014-8-20 15:35

回复 2# Linuxer

没法只能这样!简单点说就是要检索命令的返回信息,符合要求的就截取其中一部分内容输出成文本!
希望这个能在一个命令文档里面,多几个我怕打包exe后容易报错

批处理简单的还行!高深就只能跪了!

有什么想法的提供一个!谢谢!
作者: DAIC    时间: 2014-8-20 16:07

  1. sux.com -m Resoce.wk MissText.txt || echo MissText.txt 失败 > a.txt
复制代码

作者: Linuxer    时间: 2014-8-20 16:25

回复 3# 蓝灵幽魂
  1. sux.com -m Resoce.wk LibrText.txt | findstr "error" >error.txt
复制代码

作者: 蓝灵幽魂    时间: 2014-8-20 16:29

本帖最后由 蓝灵幽魂 于 2014-8-20 16:53 编辑

回复 5# Linuxer


    谢谢! 已经测试成功!不过改了下>为>> 不然输出文本失败!
   能指定内容输出吗? 只要后面括号中的信息那种
作者: Linuxer    时间: 2014-8-20 17:09

本帖最后由 Linuxer 于 2014-8-20 17:12 编辑

回复 6# 蓝灵幽魂
  1. @echo off
  2. sux.com -m Resoce.wk LibrText.txt >> error.txt
  3. (for /f "tokens=1,2* delims=()" %%a in (error.txt) do (
  4.     if not "%%b"=="" echo %%b
  5. ))>check_error.txt
  6. pause
复制代码

作者: 蓝灵幽魂    时间: 2014-8-20 17:27

本帖最后由 蓝灵幽魂 于 2014-8-20 17:35 编辑

回复 7# Linuxer


   非常感谢! 测试成功!!太感谢了!

再劳烦问个小问题,可不可以弄个变量暂时存储返回结果信息。现在出现两个文档有点不方便(心理作怪请别建议)
作者: DAIC    时间: 2014-8-20 17:54

回复 8# 蓝灵幽魂
  1. @echo off
  2. (for /f "tokens=1,2* delims=()" %%a in ('sux.com -m Resoce.wk LibrText.txt') do (
  3.     if not "%%b"=="" echo %%b
  4. ))>check_error.txt
复制代码

作者: Linuxer    时间: 2014-8-20 18:16

回复 9# DAIC


    这样更简洁,前两天才学过,我又忘记了。。命令单引号扩进去可以直接用。。唉,。我这个脑子。
作者: 蓝灵幽魂    时间: 2014-8-20 18:24

回复 9# DAIC


    非常感谢! 测试成功!谢谢!
作者: 蓝灵幽魂    时间: 2014-8-20 18:26

我这个不知道是系统问题还是什么原因! 复制你们的代码可以直接用!但做下修改就失效了!!

顺便问下! 这里输出文本是不是只能用英文! 我在你们的代码上改为中文也失效了!

我测试很多次! 用>的话只能记录最后一条!用>>可以全部记录!但如果输出文件改过就后面的记录只会重新叠加不会覆盖前面的记录!

可否放一条带del的check_error.txt 一起的命令! 我系统没法修改,就是在开头del那个记录文件避免叠加以前的记录!

非常感谢!各位的帮助! 谢谢!

望各位大神不惜赐教!
作者: DAIC    时间: 2014-8-20 20:52

回复 12# 蓝灵幽魂


用IE浏览器打开论坛
复制9楼的代码
粘贴到记事本里面
文件
另存为
选择ANSI编码
文件名:test.bat
作者: 蓝灵幽魂    时间: 2014-8-21 00:06

万分感谢! 各位大神的帮忙,已经达到我理想要求!

再次表示万分感谢!
作者: 爱的温度s    时间: 2014-8-21 00:13

你这个输出的是日文吧
作者: Linuxer    时间: 2014-8-21 09:15

回复 12# 蓝灵幽魂


    嗯,是那样的,>是覆盖,>>是追加。
前边加个del就可以了。
  1. @echo off
  2. if exist check_error.txt del check_error.txt
  3. (for /f "tokens=1,2* delims=()" %%a in ('sux.com -m Resoce.wk LibrText.txt') do (
  4.     if not "%%b"=="" echo %%b
  5. ))>>check_error.txt
复制代码

作者: DAIC    时间: 2014-8-21 09:41

回复 14# 蓝灵幽魂


    问题解决后,请编辑顶楼帖子在标题前面注明[已解决],并给回答者加分。
作者: 蓝灵幽魂    时间: 2014-8-21 10:41

回复 16# Linuxer


    谢谢! 如果用覆盖的话我同时执行多条命令前面的就没了!所以我才用>>! 前面不懂所以自己改了

用IE已经解决!
作者: 蓝灵幽魂    时间: 2014-8-21 10:49

评分才知道只能评一个! DAIC明天才能给你评分了。

再次感谢你们的帮助!谢谢!
作者: Linuxer    时间: 2014-8-21 11:39

回复 18# 蓝灵幽魂


    嗯,追加就好,代码就是一点一点测试出来的。加油。
作者: Linuxer    时间: 2014-8-21 11:39

回复 19# 蓝灵幽魂


    我替你评了。跟着DAIC走,技术全都有。
作者: 蓝灵幽魂    时间: 2014-8-21 18:26

回复 21# Linuxer


    恩!谢谢!




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2