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

[其他] 如何只用一行语句实现输出文字的同时将文字输出到文件?

[复制链接]
发表于 2008-9-8 22:01:29 | 显示全部楼层 |阅读模式
RT
我知道可以用两行语句解决,一行输出到屏幕,一行到文件,但是觉得这样写得很拖沓,请问诸位高手有什么方法可以用尽可能简练的语句实现在屏幕上输出一行字的同时,将该行字追加到文件的功能呢?
发表于 2008-9-8 22:09:27 | 显示全部楼层
  1. echo abc&&echo abc>1.txt
复制代码
发表于 2008-9-8 22:12:58 | 显示全部楼层
  1. @echo off
  2. if "%~1" equ "" start/b cmd /c "%~fs0 a>>a.txt"
  3. echo test
  4. if "%~1" equ "" pause
复制代码

[ 本帖最后由 pusofalse 于 2008-9-8 23:48 编辑 ]
 楼主| 发表于 2008-9-8 22:22:48 | 显示全部楼层
怪我说得不够明白,2楼的代码中abc出现了两次,如果要显示的文字很长很长,这样写就比较拖沓了,我希望能够在代码中文字只出现一次,大家能够指导下吗?
发表于 2008-9-8 22:25:17 | 显示全部楼层

回复 4楼 的帖子

用我3楼的代码。通用的,把echo test换成其他命令试下,同样可以“实现输出文字的同时将文字输出到文件”
 楼主| 发表于 2008-9-8 22:31:04 | 显示全部楼层
嗯,3L的方法很好很强大.至于代码是怎么实现的我再去研究,先在此谢过了!
发表于 2008-9-8 23:06:00 | 显示全部楼层
到目前我认为只用一行不复杂的代码似乎是做不到的

pusofalse的想法不错,稍微完善一下:start 加上选项 /b ,后面的“ &exit ”没必要

最好写成“函数”形式(估计楼主想在P中用到这个功能吧):
  1. :repeat
  2. if "%~1" equ "" (call :repeat argument)>a.txt
  3. echo msg
  4. rem if "%~1" equ "" pause
复制代码

[ 本帖最后由 zqz0012005 于 2008-9-8 23:07 编辑 ]
 楼主| 发表于 2008-9-8 23:25:55 | 显示全部楼层
3L和7L的代码都已经完成了我想要达到的目的,可是对于2位的代码我还是看不懂.
我不是那种不懂得自己上网搜的人,实在是无奈百度对"%,~"等关键字进行了过滤,搜不到什么有效信息.现在我勉强明白
%~0指的是批处理文件自身的完整路径
%~fs0是路径使用短文件名
但是本人菜,对于这两份代码的实现原理还是不明白,恳请各位指教指教...
只是不想知其然而不知其所以然,希望大家指导指导.谢谢啦~
发表于 2008-9-8 23:31:21 | 显示全部楼层
楼主从何得知“%~0指的是批处理文件自身的完整路径”?
发表于 2008-9-8 23:43:56 | 显示全部楼层

回复 7楼 的帖子

zqz兄所言极是,多谢指出。
但依兄弟的写法,效率会是个问题。
发表于 2008-9-14 23:53:02 | 显示全部楼层
@echo 哈哈!~~~~~~~~~~~~~~~~~>c:\哈哈.txt
这个不就是么~
发表于 2008-9-15 18:30:10 | 显示全部楼层
楼上的太可爱了,有没有看清Lz要求?
 楼主| 发表于 2008-9-17 19:01:16 | 显示全部楼层

回复 9楼 的帖子

回复9L
内容是在百度上搜的,链接如下
http://www.cn-dos.net/forum/blog ... d=103127&page=1
发表于 2008-9-17 20:57:08 | 显示全部楼层

回复 13楼 的帖子

你亲自测试没有?测试的代码和结果分别是什么?
发表于 2008-9-17 21:46:22 | 显示全部楼层

回复 13楼 的帖子

%~0不同于%0
%~0与%0在某些特定的情况下也不会是“自身路径”
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 05:43 , Processed in 0.042325 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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