[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 如何实现将指定命令语句的执行结果先回显然后写入文件

本帖最后由 pcl_test 于 2016-9-5 15:49 编辑

举下例子:
dir c: /a /s
现在想把这个命令的结果回显之后,写入文件,
或是回显的同时写入文件,
但不能先写入文件,再回显,
可以实现吗?

补充:这个命令执行的过程可能需要相当长的时间,如果先写入文件再 type,那长时间的等待似乎不妥,本人是想回显进度,但“进度”又很重要,想保存下来,而且不能开两个窗口同时执行,那会占用CPU时间,如果没有更好的办法,只能使用第三方工具了。


或者还有另外一个思路:
命令在执行时,先写入name.txt,
命令需要2个小时才能结束,
与此同时,name.txt这个文件的内容也是随着命令的执行而变化,
能不能让name.txt的最后行的的内容显示在BAT的窗口里,循环执行,直到遇到“完成”而停止

[ 本帖最后由 ibm 于 2008-11-22 20:56 编辑 ]

我认为是不可能的。

请看重定向一文。命令的结果只有一个输出指向,在这里不是指到文件就是指到屏幕上。

dir 的信息默认是显示在屏幕上,当你重定向到文件后屏幕上的显示就同时被屏蔽,因为一个句柄不可能同时指向两个地方。

我认为只能先重定向到文件,再 type 显示这个文件了。

TOP

第三方工具可办到

MTEE
http://www.commandline.co.uk/mtee/

用途: 转换输出文字格式
同时也可使用至多输出文件

EX:
C:\>@echo 123456 | MTEE 1.TXT
123456
C:\>Type 1.TXT
123456

C:\>@echo 234567 | MTEE /+ 1.TXT
234567
C:\>Type 1.TXT
123456
234567

C:\>@echo 345678 | MTEE /D 1.TXT
345678
C:\>Type 1.TXT
2008-11-22 345678

/U 可将文件格式转换成Unicode格式
/A 可将文件格式转换成ANSI格式

TOP

  1. :m
  2. if "%1" equ "-t" goto :t
  3. subst z: "%cd%"
  4. start /b %~s0 -t
  5. :s
  6. dir c: /w>d:\1.txt
  7. exit
  8. :t
  9. if not exist z:\ exit
  10. dir c: /w
  11. pause
  12. goto :s
复制代码
这样合要求不?

TOP

不是我想要的

TOP

这个呢?输出到屏幕的同时将内容也输出到文件。。。
http://bbs.bathome.net/viewthrea ... %2B%2Fc%2Bpusofalse
心绪平和,眼藏静谧。

TOP

貌似不符号LZ的要求,好像他是要执行2 hours,那么执行两次就有点...

TOP

标题说“先回显然后写入文件”
帖子描述说“先写入文件然后回显”
到底想怎样?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

但不能先写入文件,再回显,

ms是这样的意思吧。

TOP

返回列表