Board logo

标题: [文件操作] 怎样让屏显的结果的同时写入到到文件中? [打印本页]

作者: xzwcn    时间: 2013-4-6 11:41     标题: 怎样让屏显的结果的同时写入到到文件中?

如用Tracert命令时,想让它显示完毕后,把结果保存到TXT中,

现在用很笨的方法。。。。
  1. tracert %IP%
  2. tracert %IP%>%COMPUTERNAME%_%USERNAME%_Tracert_%IP%.txt
复制代码

作者: 522235677    时间: 2013-4-6 12:04

我也很需要这个方法
作者: CrLf    时间: 2013-4-6 12:52

http://bbs.bathome.net/viewthrea ... mp;highlight=ascode

其中的 tee.com 正是用于双句柄输出的,举个例子:
  1. @echo off&chcp 437|graftabl>nul 936
  2. echo Bj@jzh`0X-`/PPPPPPa(DE(DM(DO(Dh(Ls(Lu(LX(LeZRR]EEEUYRX2Dx=>tee.com
  3. echo 0DxFP,0Xx.t0P,=XtGsB4o@$?PIyU WwX0GwUY Wv;ovBX2Gv0ExGIuht6>>tee.com
  4. echo @VyI?@xAp~sA`LZNxOq@Kt@FB?sUs`LbLB?tgj`{gjB~0x>>tee.com
  5. tracert %IP%|tee.com >a.txt 2>b.txt
  6. pause
复制代码

作者: 522235677    时间: 2013-4-26 22:36

回复 3# CrLf


    这个怎么刚打开就提示 graftabl 不是内部命令或外部命令,然后就退出了呢?
作者: CrLf    时间: 2013-4-27 00:54

回复 4# 522235677


    那就用 vbs 或 js,也是原生的:
  1. @echo off
  2. echo>tee.vbs text = wscript.stdin.readall:wscript.echo text:wscript.stderr.write text
  3. dir |cscript /nologo tee.vbs >a.txt 2>b.txt
  4. pause
复制代码

作者: 522235677    时间: 2013-4-28 09:55

回复 5# CrLf


    顶,好办法
作者: 522235677    时间: 2013-4-28 10:00

回复 3# CrLf


    这个好像是等命令执行完了,cmd里才能显示,同时才能写入到文本。
作者: CrLf    时间: 2013-4-28 18:15

本帖最后由 CrLf 于 2013-4-28 18:17 编辑

回复 7# 522235677


    管道就是要等待命令结束。
    如果你等不及,想同步输出,最好能找个专门的控制台第三方程序,若要用“纯”批方案,那可以类似这样:
  1. @echo off
  2. set "file=输出文件.txt"
  3. set "skip=0"
  4. set "size=%~z0"
  5. setlocal enabledelayedexpansion
  6. start /b cmd /c dir /s c:\^>"!file!"^&echo;^>^>"%~0"
  7. :loop
  8. for %%a in ("!file!") do (
  9. if %%~za gtr !size! (
  10. set "size=%%~za"
  11. more +!skip! !file!|findstr .*
  12. for /f %%b in ('find /c /v ""^<!file!') do set "skip=%%b"
  13. ) else (
  14. if %~z0 neq !size! goto end
  15. )
  16. )
  17. goto loop
  18. :end
  19. echo 结束
  20. pause
复制代码

作者: 522235677    时间: 2013-4-28 18:25

回复 8# CrLf


    NB




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