找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 37074|回复: 8

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

[复制链接]
发表于 2008-11-22 19:54:03 | 显示全部楼层 |阅读模式
本帖最后由 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 编辑 ]
发表于 2008-11-22 20:12:09 | 显示全部楼层
我认为是不可能的。

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

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

我认为只能先重定向到文件,再 type 显示这个文件了。
发表于 2008-11-22 20:22:17 | 显示全部楼层
第三方工具可办到

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格式
发表于 2008-11-22 20:31:56 | 显示全部楼层
  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
复制代码
这样合要求不?
 楼主| 发表于 2008-11-22 20:57:23 | 显示全部楼层
不是我想要的
发表于 2008-11-22 21:30:48 | 显示全部楼层
这个呢?输出到屏幕的同时将内容也输出到文件。。。
http://bbs.bathome.net/viewthrea ... %2B%2Fc%2Bpusofalse
发表于 2008-11-22 22:02:26 | 显示全部楼层
貌似不符号LZ的要求,好像他是要执行2 hours,那么执行两次就有点...
发表于 2008-11-23 03:02:53 | 显示全部楼层
标题说“先回显然后写入文件”
帖子描述说“先写入文件然后回显”
到底想怎样?
发表于 2008-11-23 08:11:22 | 显示全部楼层
但不能先写入文件,再回显,

ms是这样的意思吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 02:30 , Processed in 0.015301 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表