Board logo

标题: [文本处理] 批处理如何写入文件的同时再读取到控制台内显示文件? [打印本页]

作者: 帝尊    时间: 2022-2-2 15:26     标题: 批处理如何写入文件的同时再读取到控制台内显示文件?

我写了一个从服务器下载软件的程序,用批处理调用,会写入一个txt的文本内容。
里面大概就是各种版本信息和下载的进度,进度变化一次写入一次。所以txt是不停的在更新的。
我想达到的目的就是可以在他写入的同时再读取到控制台内显示。当显示到100%跳出或者1分钟没变化就跳出。
请问怎么实现呢?
不知道是不是批处理本身的问题,调用exe以后需要这条命令完成后才能进入读取的环节。可以exe一边写,批处理一边读吗?

xiazai.exe --sser %sser% --file&file& --log >%LJ%MV/TP.txt
下面写了读取,但是好像上面这条结束以后才会进入读取txt的命令。
作者: Batcher    时间: 2022-2-2 19:33

回复 1# 帝尊


试试第三方命令行工具 tee.exe 或者 mtee.exe
http://bcn.bathome.net/s/tool/index.html?key=tee

例子:
http://bbs.bathome.net/thread-2058-1-1.html
作者: idwma    时间: 2022-2-2 20:27

还可以试试powershell自带的tee
  1. powershell "ping -t github.com|tee github.txt|foreach{if($_ -match '超时'){break}else{$_}}"
复制代码

作者: 帝尊    时间: 2022-2-2 22:02

回复 2# Batcher
非常感谢。因为我不太喜欢第三方工具。所以还是用了批处理本身的能力。
我解决的办法就是在运行命令之前让他自己再新开一个批处理窗口,1秒后开始读取文本,进行反复读取,读取对应的文字,当文字出中出现100就提示3秒后关闭,或者其他的中断提示后也3秒后关闭。
但是现在就在研究变量属性在另外一个新开窗口继承的问题。还在研究。
回复 3# idwma
这个命令不太熟悉。我找找资料试试看。谢谢。
作者: Batcher    时间: 2022-2-2 22:06

回复 4# 帝尊


你那个思路行不通,建议不必浪费太多时间。
不介意PowerShell的话,可以顺着这个思路继续。
作者: 帝尊    时间: 2022-2-2 23:08

回复 5# Batcher
好的。谢谢。那我就用powershell试试看。




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