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

[ 新手练习 7 ] 批处理把所有输出都写入一个文件

添加代码把所有输出(包括正常输出和错误反馈)都写入一个文件如 a.txt。
可不按原输出信息的顺序。
要求是原代码行不能改动。
  1. echo 批处理之家
  2. Link2Bathome
  3. set/p=不要想当然,回到正途吧。<nul
  4. echo BBS.bathome.net
复制代码
方法不限。添加越少,得分越多。
上一题:[ 新手习题 6 ] 添加汉字行号
http://bbs.bathome.net/thread-2569-1-1.html
1

评分人数

echo 批处理之家>>a.txt
Link2Bathome>>a.txt
set/p=不要想当然,回到正途吧。<nul>>a.txt
echo BBS.bathome.net>>a.txt

TOP

@echo off
call :sub > a.txt
:sub
echo 批处理之家
Link2Bathome
set/p=不要想当然,回到正途吧。<nul
echo BBS.bathome.net

TOP

@echo off
>a.txt (
echo 批处理之家
Link2Bathome
set/p=不要想当然,回到正途吧。<nul
echo BBS.bathome.net
)

TOP

  1. cd.>a.txt
  2. (
  3. echo 批处理之家
  4. Link2Bathome
  5. set/p=不要想当然,回到正途吧。<nul
  6. echo BBS.bathome.net
  7. ) 1>>a.txt 2>&1
复制代码

TOP

多看看果然好,有知道了一个2>&1的作用了,把标准错误重定向到标准输出,这样就能显示错误反馈信息了

TOP

回复 19# leap
我也看了半天纠结中。
查了一下,

2代表运行出错
>输出重定向
&1代表正确运行时输出的文件,这里是a.txt
连起来的意思是把运行错误的信息也输入到运行正确的输出文件中。
如果没有这段,那么前面的代码中运行出错的行将不会输出到a.txt
就是这样子的。

TOP

1# wxcute
  1. @echo off
  2. (
  3. echo echo 批处理之家
  4. echo Link2Bathome
  5. echo set/p=不要想当然,回到正途吧。^<nul
  6. echo echo BBS.bathome.net
  7. )>a.txt
  8. pause
复制代码

TOP

  1. echo echo 批处理之家 >>a.txt
  2. echo Link2Bathome >>a.txt
  3. echo set/p=不要想当然,回到正途吧。^<nul >>a.txt
  4. echo echo BBS.bathome.net >>a.txt
复制代码
不知道这样符合题目要求不
菜鸟一个,潜心学习
总有学会的一天

TOP

修改了三楼的方案,加上" ^" 可以完整的输出>nul
@echo off
>a.txt echo 批处理之家
>>a.txt echo Link2Bathome
>>a.txt echo set /p=不要想当然,回到正途吧。^>nul
>>a.txt echo BBS.bathome.net
pause>nul

TOP

我来看看 刚来 还不是很懂啊

TOP

@echo off
echo, 1>nul 3>a.txt
echo, 2>nul 4>&1
echo 批处理之家
Link2Bathome
set/p=不要想当然,回到正途吧。<nul
echo BBS.bathome.net
看得多说得多,远比不上写得多。

TOP

  1. for /f "delims=" %%a in ('more +1 "%~nx0"') do (%%a >>a.txt)&(%%a 2>>a.txt)
  2. echo 批处理之家
  3. Link2Bathome
  4. set/p=不要想当然,回到正途吧。<nul
  5. echo BBS.bathome.net
复制代码

[ 本帖最后由 vincentzhou 于 2011-1-1 00:40 编辑 ]
only the strong survive!

TOP

各位代码中的2>&1
是啥含义 请告知谢谢

TOP

为了使代码具有良好的可读性、健壮性,实现高内聚、低耦合,我费尽脑汁历尽千辛万苦终于写成了,写的不好,各位前辈们别嘲笑我哈。。。
  1. @echo off
  2. set /a c+=1
  3. echo 批处理之家
  4. Link2Bathome
  5. set/p=不要想当然,回到正途吧。<nul
  6. echo BBS.bathome.net
  7. if %c%==1 call %0 >>a.txt 2<&1
复制代码
如有错误,还请多多批评指正,晚辈不才,在此多谢了。。。

TOP

返回列表