Board logo

标题: [其他] 批处理如何实现Linux下的tee,将结果显示到屏幕/控制台窗口和输出到文件 [打印本页]

作者: wkl17    时间: 2017-6-8 22:08     标题: 批处理如何实现Linux下的tee,将结果显示到屏幕/控制台窗口和输出到文件

本帖最后由 pcl_test 于 2017-6-8 22:18 编辑

能否像Linux下的tee那样,显示并记录?>>屏幕看不到过程

因为我echo >>输出虽然记录到日志了,

但我屏幕上并没有显示。

能否同时在屏幕显示+记录到log里?

百度看到有人弄了个 tee.com 或 tee.vbs,但不知道是否有纯bat/cmd的方式?
作者: ShowCode    时间: 2017-6-8 22:44

这个真没有。可以用工具:
http://bbs.bathome.net/s/tool/index.html?key=tee
作者: happy886rr    时间: 2017-6-8 23:16

本帖最后由 happy886rr 于 2017-6-8 23:24 编辑

回复 1# wkl17
其实直接@echo on就行。
或者
你echo两次不就搞定了,
  1. echo "要显示的”
  2. echo "要写入的" >> a.log
复制代码
或者构造个流缓存,如tmp.txt
先进输出存到流缓存里,然后显示并打印,find就能做到。
作者: wkl17    时间: 2017-6-8 23:19

这个真没有。可以用工具:
ShowCode 发表于 2017-6-8 22:44



    已应用上,感谢!

PS:补充使用方法给后来者: 在要记录的内容后面加上 | tee -a xxx.log  即可。
作者: ShowCode    时间: 2017-6-9 08:53

回复 3# happy886rr


    把你的find方案发出来大家学习下
作者: wkl17    时间: 2017-6-9 14:12

回复  wkl17
其实直接@echo on就行。
或者
你echo两次不就搞定了,或者构造个流缓存,如tmp.txt
先进输 ...
happy886rr 发表于 2017-6-8 23:16



    @echo on 我试过了 不行。不过用find倒是个不错的方法。但是如果数据一多(我做每隔30分钟记录一次log) 这方案可能也就不太适用了。

或者tmp.txt + final.txt,如果2个文本 那就ok。只是要多写磁盘。
作者: wkl17    时间: 2017-6-9 14:13

tee 后面的参数 -a 是追加记录的意思。
作者: yu2n    时间: 2017-6-9 16:19

純批?CMD內置命令(不含EXE)?那恐怕很難。

不介意 PowerShell ? PowerShell 調用 FSO 應該可以。

以下是 VBS 調用 FSO 實現 TEE 例子。
在批處理中無限時地執行 Ping 命令(-t參數),不結束進程,將結果實時的輸出到螢幕和文本文件(test.txt)。

TeeExamp.cmd
  1. :: TeeExamp.cmd
  2. @echo off
  3. :: Setup
  4.   call :BuildVBS
  5.   
  6. :: Your command(s) goes here
  7.   ping -t 127.1 | %TEE% > test.txt
  8.    
  9. :: cleanup & exit
  10.   del %temp%.\T.vbs & set "TEE=" & exit /b
  11.   
  12. :BuildVBS
  13.   set TEE=cscript //nologo %temp%.\T.vbs
  14.   (echo set con = createobject("scripting.filesystemobject"^)_
  15.    echo                .opentextfile("con:", 2^)
  16.    echo do until wsh.stdin.atendofstream
  17.    echo   s = wsh.stdin.readline
  18.    echo   wsh.echo s : con.writeline FormatDateTime(Now,vbLongTime^) ^& "  " ^& s
  19.    echo loop
  20.   ) > %temp%.\T.vbs
复制代码
同步顯示:執行時,同時顯示和輸出到文件
【output .bat-file to console AND logfile.txt】
https://social.technet.microsoft ... gfiletxt?forum=ITCG

異步顯示:執行完成再顯示
【怎樣讓屏顯的結果的同時寫入到到文件中?】
http://www.bathome.net/viewthread.php?tid=23506

作者: wkl17    时间: 2017-6-10 13:50

本帖最后由 wkl17 于 2017-6-10 13:52 编辑
純批?CMD內置命令(不含EXE)?那恐怕很難。

不介意 PowerShell ? PowerShell 調用 FSO 應該可以。

...
yu2n 发表于 2017-6-9 16:19



    感谢分享!!请问 你的PowerShell是如何学习的?相关书箱还是官方文档?总感觉它的关键词很长,很不容易记住。
作者: Batcher    时间: 2017-6-10 14:10

回复 9# wkl17


微软有视频
http://bbs.bathome.net/thread-26220-1-1.html




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