标题: [ 新手练习 7 ] 批处理把所有输出都写入一个文件 [打印本页]
作者: wxcute 时间: 2008-11-18 21:00 标题: [ 新手练习 7 ] 批处理把所有输出都写入一个文件
添加代码把所有输出(包括正常输出和错误反馈)都写入一个文件如 a.txt。
可不按原输出信息的顺序。
要求是原代码行不能改动。- echo 批处理之家
- Link2Bathome
- set/p=不要想当然,回到正途吧。<nul
- echo BBS.bathome.net
复制代码
方法不限。添加越少,得分越多。
作者: hlzj88 时间: 2008-11-18 21:57
- @echo off
- >>1.txt echo echo 批处理之家
- >>1.txt echo Link2Bathome
- >>1.txt echo set/p=不要想当然,回到正途吧。^<nul
- >>1.txt echo echo BBS.bathome.net<nul
- pause
复制代码
刚发现一个问题,用 [code]会将上面的^<nul没有掉,
感觉是审题错了,已经占楼了,再抹也是个疤,索性不抹了,各位别笑话啊
[ 本帖最后由 hlzj88 于 2008-11-18 22:09 编辑 ]
作者: lhjoanna 时间: 2008-11-19 00:14
如果理解的没错应该是这样吧- @echo off
- >info.txt echo 批处理之家
- 2>>info.txt Link2Bathome
- >>info.txt <nul set /p=不要想当然,回到正途吧。
- >>info.txt echo BBS.bathome.net
复制代码
没添加pause结果直接到info.txt中查看。
[ 本帖最后由 lhjoanna 于 2008-11-19 00:24 编辑 ]
作者: wxcute 时间: 2008-11-19 10:08 标题: 楼上两位都修改了原代码行,所以暂不得分。请看题目要求第三行
就是要原封不动的写,可以上下添加代码。
==================================
还是给大伙加分吧,新手想到一点也不容易 ^_^ 加油。
[ 本帖最后由 wxcute 于 2008-11-19 12:07 编辑 ]
作者: Batcher 时间: 2008-11-19 10:13
一是需要经验的积累,二是需要对句柄和重定向等理论知识的掌握。
这个对于新人来说似乎有点难度哦^_^
作者: wxcute 时间: 2008-11-19 10:20
论坛就有例子,就像在野外生存一样,找得到的吃的的人才不会饿死。哈哈。
作者: stalker 时间: 2008-11-19 11:39
太难了,过段时间再来
找到一篇文章,不过不太懂,其中有半个答案,看懂拉我想就是整个拉
[ 本帖最后由 stalker 于 2008-11-19 11:48 编辑 ]
作者: sylovanas 时间: 2008-11-19 11:58
这样?
@FOR %%a in (
"echo 批处理之家"
"Link2Bathome"
"set/p=不要想当然,回到正途吧。<nul"
"echo BBS.bathome.net" ) DO %%~a>>a.txt 2>&1
我了解意思了.那这样不对
[ 本帖最后由 sylovanas 于 2008-11-19 12:02 编辑 ]
作者: sylovanas 时间: 2008-11-19 12:10
这样就好
- @(
- echo 批处理之家
- Link2Bathome
- set/p=不要想当然,回到正途吧。<nul
- echo BBS.bathome.net
- )>> a.txt 2>&1
复制代码
[ 本帖最后由 sylovanas 于 2008-11-19 12:35 编辑 ]
作者: stalker 时间: 2008-11-19 12:20
楼上真强大
@符号的作用是什么呢
取消本条命令的回显,想起来了,不好意思
[ 本帖最后由 stalker 于 2008-11-19 12:27 编辑 ]
作者: wxcute 时间: 2008-11-19 12:43
大家还可以想,虽然方法与 9 楼可能类似。
作者: stalker 时间: 2008-11-19 13:43
还有点问题,先发一下- @echo off
- echo see mine>nul 3>a.txt 2>&3 5>a.txt
- echo 批处理之家
- Link2Bathome
- set/p=不要想当然,回到正途吧。<nul
- echo BBS.bathome.net
复制代码
哇卡卡,这样就好拉
- @echo off
- echo see mine>nul 3>a.txt 2>&3 5>&3
- echo 批处理之家
- Link2Bathome
- set/p=不要想当然,回到正途吧。<nul
- echo BBS.bathome.net
复制代码
不过我想知道上面那个为什么会有点问题呢
[ 本帖最后由 stalker 于 2008-11-19 13:57 编辑 ]
作者: BBCC 时间: 2008-11-19 17:45
- call :a>> a.txt 2>&1
-
- :a
- echo 批处理之家
- Link2Bathome
- set/p=不要想当然,回到正途吧。<nul
- echo BBS.bathome.net
复制代码
这样行不?
作者: firewolf85 时间: 2008-12-7 19:13
- call :loop >>a.txt
- :loop
- echo 批处理之家
- Link2Bathome
- set/p=不要想当然,回到正途吧。<nul
- echo BBS.bathome.net
复制代码
但是没有错误提示的那句
作者: Seter 时间: 2009-11-12 13:28
- @echo off&if 1%1==1 %0 1>t.txt 2>&1
- echo 批处理之家
- Link2Bathome
- set/p=不要想当然,回到正途吧。<nul
- echo BBS.bathome.net
复制代码
貌似会多一行...
作者: zgq0301 时间: 2009-11-12 15:42
- @echo off
- goto :b
- :a
- echo 批处理之家
- Link2Bathome
- set/p=不要想当然,回到正途吧。<nul
- echo BBS.bathome.net
- :b
- call :a>> a.txt 2>&1
- pause>nul
复制代码
作者: qq106942397 时间: 2010-7-28 21:40
- @echo off
- @echo off
- (echo 批处理之家
- Link2Bathome
- set/p=不要想当然,回到正途吧。<nul
- echo BBS.bathome.net) 1>t.txt 2>&1
复制代码
[ 本帖最后由 qq106942397 于 2010-7-28 21:43 编辑 ]
作者: fish 时间: 2010-7-31 15:42
为了使代码具有良好的可读性、健壮性,实现高内聚、低耦合,我费尽脑汁历尽千辛万苦终于写成了,写的不好,各位前辈们别嘲笑我哈。。。- @echo off
- set /a c+=1
- echo 批处理之家
- Link2Bathome
- set/p=不要想当然,回到正途吧。<nul
- echo BBS.bathome.net
- if %c%==1 call %0 >>a.txt 2<&1
复制代码
如有错误,还请多多批评指正,晚辈不才,在此多谢了。。。
作者: leap 时间: 2010-9-2 12:47
各位代码中的2>&1
是啥含义 请告知谢谢
作者: vincentzhou 时间: 2011-1-1 00:17
- for /f "delims=" %%a in ('more +1 "%~nx0"') do (%%a >>a.txt)&(%%a 2>>a.txt)
- echo 批处理之家
- Link2Bathome
- set/p=不要想当然,回到正途吧。<nul
- echo BBS.bathome.net
复制代码
[ 本帖最后由 vincentzhou 于 2011-1-1 00:40 编辑 ]
作者: weichenxiehou 时间: 2011-1-4 16:07
@echo off
echo, 1>nul 3>a.txt
echo, 2>nul 4>&1
echo 批处理之家
Link2Bathome
set/p=不要想当然,回到正途吧。<nul
echo BBS.bathome.net
作者: hdfsvod 时间: 2011-3-8 04:25
我来看看 刚来 还不是很懂啊
作者: dennis1314 时间: 2011-3-9 08:54
修改了三楼的方案,加上" ^" 可以完整的输出>nul
@echo off
>a.txt echo 批处理之家
>>a.txt echo Link2Bathome
>>a.txt echo set /p=不要想当然,回到正途吧。^>nul
>>a.txt echo BBS.bathome.net
pause>nul
作者: common 时间: 2011-6-13 23:38
- echo echo 批处理之家 >>a.txt
- echo Link2Bathome >>a.txt
- echo set/p=不要想当然,回到正途吧。^<nul >>a.txt
- echo echo BBS.bathome.net >>a.txt
复制代码
不知道这样符合题目要求不
作者: Hello123World 时间: 2011-7-19 17:08
1# wxcute - @echo off
- (
- echo echo 批处理之家
- echo Link2Bathome
- echo set/p=不要想当然,回到正途吧。^<nul
- echo echo BBS.bathome.net
- )>a.txt
- pause
复制代码
作者: scarcr 时间: 2011-8-4 11:21
回复 19# leap
我也看了半天纠结中。
查了一下,
2代表运行出错
>输出重定向
&1代表正确运行时输出的文件,这里是a.txt
连起来的意思是把运行错误的信息也输入到运行正确的输出文件中。
如果没有这段,那么前面的代码中运行出错的行将不会输出到a.txt
就是这样子的。
作者: 无知小菜鸟 时间: 2012-8-31 11:21
多看看果然好,有知道了一个2>&1的作用了,把标准错误重定向到标准输出,这样就能显示错误反馈信息了
作者: skynjupt 时间: 2013-4-25 23:41
- cd.>a.txt
- (
- echo 批处理之家
- Link2Bathome
- set/p=不要想当然,回到正途吧。<nul
- echo BBS.bathome.net
- ) 1>>a.txt 2>&1
复制代码
作者: 772074834 时间: 2023-4-25 10:14
@echo off
>a.txt (
echo 批处理之家
Link2Bathome
set/p=不要想当然,回到正途吧。<nul
echo BBS.bathome.net
)
作者: 772074834 时间: 2023-4-25 10:18
@echo off
call :sub > a.txt
:sub
echo 批处理之家
Link2Bathome
set/p=不要想当然,回到正途吧。<nul
echo BBS.bathome.net
作者: LTSC1809 时间: 2023-5-1 00:27
echo 批处理之家>>a.txt
Link2Bathome>>a.txt
set/p=不要想当然,回到正途吧。<nul>>a.txt
echo BBS.bathome.net>>a.txt
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |