标题: [已解决]关于命令回显和写入文件的问题
[打印本页]
作者: hirro
时间: 2008-1-17 11:40
标题: [已解决]关于命令回显和写入文件的问题
初学批处理,问个小问题......俺是菜鸟别笑话俺......
想实现一个功能,ping服务器的时候希望有命令回显在窗口中并写入到一个txt文件中
如果用ping
www.baidu.com >>c:\1.txt的话那ping的结果不会显示在窗口中而是直接写入到文件里
是不是能够实现既在窗口中有回显又同时写入文件呢?
各位大大帮帮小弟,谢了:P
[
Last edited by hirro on 2008-1-21 at 08:52 AM ]
作者: fastslz
时间: 2008-1-17 12:19
for /f "delims=" %%a in ('ping
www.baidu.com') do echo.%%a&echo.%%a>>c:\1.txt
作者: hirro
时间: 2008-1-17 12:42
谢谢fastslz的回答
不过效果并不是我想要的
我希望在ping的同时显示结果,就像一般在cmd里直接输入ping命令那样的逐行显示结果,然后将结果写入文本
fastslz的回答是在ping命令结束以后才输出结果并写入文件
不知道能不能实现.......
[
Last edited by hirro on 2008-1-17 at 12:50 PM ]
作者: fastslz
时间: 2008-1-17 13:05
那就不是菜鸟问题了,借助第3方工具,搜下贴,站长曾经推荐过某第3方工具
作者: zh159
时间: 2008-1-17 13:53
只能找比尔修改ping了,第三方工具也是将ping的输出结果类似for方式回显和写入文件
作者: huahua0919
时间: 2008-1-17 14:05
如果你鱼和熊掌想兼得,那就多写一遍
ping www.baidu.com&ping www.baidu.com >c.txt
[
Last edited by huahua0919 on 2008-1-17 at 02:10 PM ]
作者: lxmxn
时间: 2008-1-18 01:14
搜索tee。
作者: HAT
时间: 2008-1-18 12:58
willsort大侠已经分析的很透彻了
http://www.cn-dos.net/forum/view ... ight=tee&page=2
作者: hirro
时间: 2008-1-18 14:59
谢谢各位的帮助,看了willsort的那篇透彻的分析学到了很多,希望的功能也得以实现
作者: 429499381
时间: 2008-1-18 18:57
@echo off & color 9c
:start
set /a a=a+1
ping
www.baidu.com >c:\1.txt
for /f "delims=" %%a in (c:\1.txt) do echo.%%a 2<nul & ping -n 2 127.0.0.1>nul
if "%a%"=="2" cls
goto start
依我的理解,这个也许能满足你的要求 , 不过有一点小问题, 就是有文本的前3个字符无法显示, 也不知道怎么回事。 可能根FOR运行机制有关, 好好看看去
作者: zh159
时间: 2008-1-18 19:32
不知LS的为何用“ 2<nul ”,去掉就能正常显示了
作者: 429499381
时间: 2008-1-18 19:49
2<nul 是测试的时候忘了去掉, 并不影响什么, 去掉之后结果还是一样
前几个字符无法显示, 你的结果如何呢??
作者: zh159
时间: 2008-1-18 22:20
我一直提倡“&、&&、||”使用的时候两边不要空出不必要的空格
“echo.%%a &”空格越多缺的字符越多,很奇怪
作者: 429499381
时间: 2008-1-19 07:14
呵呵 , 经过提示, 发现更好玩的东西
@echo off & color 9c
:start
set /a a=a+1
ping
www.baidu.com >c:\1.txt
for /f "delims=" %%a in (c:\1.txt) do echo.%%a%%a..[%a%]..%%a& ping -n 1 127.0.0.1>nul
goto start
不知道有没有人提到过, 呵呵, 如果想找回丢失的字符, 可以看看下面的
@echo off & color 9c
:start
set /a a=a+1
ping
www.baidu.com >c:\1.txt
for /f "delims=" %%a in (c:\1.txt) do echo.%%a%%a %%a& ping -n 1 127.0.0.1>nul
goto start
大家慢慢体会, 说不定会有更好玩的东西呢!! :)
作者: 429499381
时间: 2008-1-19 07:21
再试试这个
@echo off & color 9c
:start
set /a a=a+1
ping
www.baidu.com >c:\1.txt
for /f "delims=" %%a in (c:\1.txt) do echo.%%a 12345678901234567 & ping -n 1 127.0.0.1>nul
goto start
作者: zh159
时间: 2008-1-19 14:14
这好像在for内部处理变量时有点小问题,不过在echo前面加上call就OK了