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

[特效代码] 一句什么命令可屏蔽整个批处理的正常输出,不用每句后都>nul?

[复制链接]
发表于 2008-10-16 18:19:42 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-9-29 22:49 编辑

在咱们论坛上见过一个类似的帖子,可现在怎么也找不到了。还请各位再讲一遍,或帮忙找出那个帖子,拜托了!
发表于 2008-10-16 18:25:59 | 显示全部楼层
  没有这样的语句,论坛也没有类似的帖子。
发表于 2008-10-16 18:33:58 | 显示全部楼层
可以这样做:
打开cmd,输入批处理的名字,假设为a.bat,输入a.bat>nul,这样即可屏蔽所有标准输出。
利用这个思路,可以用下面的代码来实现:
  1. @echo off
  2. if "%~1" equ "" start/b %~fs0 a>nul&exit
  3. echo test
  4. ver
  5. pause
  6. exit
复制代码
本该显示如下信息:
  1. test
  2. Microsoft Windows XP [版本 5.1.2600]
  3. 请按任意键继续. . .
复制代码
但用了start/b %~fs0 a>nul即将所有的结果屏蔽。
发表于 2008-10-16 18:45:02 | 显示全部楼层
rem 1>nul 3>nul
 楼主| 发表于 2008-10-16 19:06:14 | 显示全部楼层
我记得那个代码很简洁的,明明见过~
发表于 2008-10-16 19:08:49 | 显示全部楼层
这个?
  1. @echo off
  2. (echo a
  3. echo b
  4. echo c
  5. echo d
  6. )>nul
复制代码
 楼主| 发表于 2008-10-16 19:21:07 | 显示全部楼层
batcher的方法可以满足需求,thx!
不过还不是我见到的那个方法。
发表于 2008-10-16 19:23:32 | 显示全部楼层
if "%~1" equ "" start/b %~fs0 a>nul&exit这句怎么理解啊.我一头雾水.~~~!刚开始看批处理
不懂,能解释下吗?
发表于 2008-10-16 19:55:33 | 显示全部楼层
  1. @echo off
  2. echo. 1>nul 3>nul
  3. echo 标准输出已经全被屏蔽了
  4. echo 这些内容看不见
  5. echo 还是看不见。。
  6. echo. 1>nul 4>con
  7. echo 看见了。。。
  8. echo 已经恢复了
  9. pause
复制代码

[ 本帖最后由 随风 于 2008-10-16 19:56 编辑 ]
 楼主| 发表于 2008-10-16 20:01:22 | 显示全部楼层
哈,就是随风版主这个!谢了!我见的那个帖子是您发的吧?
另外,很喜欢你的签名!“上善若水,在能处下,能利万物而不争,夫唯不争,故天下莫能与之争!圣人之境,虽不能至,心向往之!”

再另外,还请解释下控制台设备文件及其参数。

[ 本帖最后由 Cameron 于 2008-10-16 20:11 编辑 ]
发表于 2008-10-16 20:06:16 | 显示全部楼层
当 批处理中有多处echo需要定向到文本中,可以使用这种方法,以使代码简化
如:、
  1. @echo off
  2. echo abcd>>a.txt
  3. echo 1234>>a.txt
  4. echo ldjfafj>>a.txt
  5. echo 9f7jfa8fd>>a.txt
复制代码
可以这样

  1. @echo off
  2. echo. 1>nul 3>a.txt
  3. echo abcd
  4. echo 1234
  5. echo ljfafja;f
  6. echo flfjalfjadfa;

复制代码

[ 本帖最后由 随风 于 2008-10-16 20:07 编辑 ]

评分

参与人数 1PB +1 收起 理由
lixiaodaoaaa + 1 懂了点

查看全部评分

发表于 2008-10-16 20:54:58 | 显示全部楼层
1 是正常输出
2 是错误输出

Quote:
句柄 句柄的数字代号 说明
STDIN 0 键盘输入
STDOUT 1 输出到命令提示符窗口
STDERR 2 错误输出到命令提示符窗口
UNDEFINED 3-9 这些句柄由应用程序和各个具体工具单独定义。

评分

参与人数 1PB +10 收起 理由
yslyxqysl + 10 感谢你的解释

查看全部评分

 楼主| 发表于 2008-10-16 21:02:27 | 显示全部楼层
高手很多嘛!
lolo能再详细些吗,或者给出在哪些资料上能查到。
发表于 2008-10-16 21:58:51 | 显示全部楼层
系统有自带的CMD手册:命令行参考

见我的签名
发表于 2008-10-16 22:18:53 | 显示全部楼层

评分

参与人数 1PB +2 收起 理由
lixiaodaoaaa + 2 感谢搜索,为新人提供技术服务

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-16 23:50 , Processed in 0.032410 second(s), 12 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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