标题: [文件操作] 怎样让屏显的结果的同时写入到到文件中? [打印本页]
作者: xzwcn 时间: 2013-4-6 11:41 标题: 怎样让屏显的结果的同时写入到到文件中?
如用Tracert命令时,想让它显示完毕后,把结果保存到TXT中,
现在用很笨的方法。。。。- tracert %IP%
- 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 正是用于双句柄输出的,举个例子:- @echo off&chcp 437|graftabl>nul 936
- echo Bj@jzh`0X-`/PPPPPPa(DE(DM(DO(Dh(Ls(Lu(LX(LeZRR]EEEUYRX2Dx=>tee.com
- echo 0DxFP,0Xx.t0P,=XtGsB4o@$?PIyU WwX0GwUY Wv;ovBX2Gv0ExGIuht6>>tee.com
- echo @VyI?@xAp~sA`LZNxOq@Kt@FB?sUs`LbLB?tgj`{gjB~0x>>tee.com
-
- tracert %IP%|tee.com >a.txt 2>b.txt
- pause
复制代码
作者: 522235677 时间: 2013-4-26 22:36
回复 3# CrLf
这个怎么刚打开就提示 graftabl 不是内部命令或外部命令,然后就退出了呢?
作者: CrLf 时间: 2013-4-27 00:54
回复 4# 522235677
那就用 vbs 或 js,也是原生的:- @echo off
- echo>tee.vbs text = wscript.stdin.readall:wscript.echo text:wscript.stderr.write text
- dir |cscript /nologo tee.vbs >a.txt 2>b.txt
- 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
管道就是要等待命令结束。
如果你等不及,想同步输出,最好能找个专门的控制台第三方程序,若要用“纯”批方案,那可以类似这样:- @echo off
- set "file=输出文件.txt"
- set "skip=0"
- set "size=%~z0"
- setlocal enabledelayedexpansion
-
- start /b cmd /c dir /s c:\^>"!file!"^&echo;^>^>"%~0"
-
- :loop
- for %%a in ("!file!") do (
- if %%~za gtr !size! (
- set "size=%%~za"
- more +!skip! !file!|findstr .*
- for /f %%b in ('find /c /v ""^<!file!') do set "skip=%%b"
- ) else (
- if %~z0 neq !size! goto end
- )
- )
- goto loop
-
- :end
- echo 结束
- pause
复制代码
作者: 522235677 时间: 2013-4-28 18:25
回复 8# CrLf
NB
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |