中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-30 20:35
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » 关于">"的疑惑....... 查看 1,247 回复 6
楼 主 关于">"的疑惑....... 发表于 2006-11-16 12:15 ·  中国 广东 佛山 广东睿江科技有限公司
初级用户
积分 52
发帖 24
注册 2006-11-16 06:50
19年会员
UID 70653
性别 男
状态 离线
在批处理版区,看到一些批处理的列子,其中关于">"的用法,很有疑惑....

比如说:


C:\>msg %username% /v /w /time:9999 "请确定">nul






@echo off
echo intAnswer = Msgbox("您好,请点击确定!", vbExclamation , "您好")>%Temp%\Temp.vbs
%Temp%\Temp.vbs



两个列子都用到">",,,,由于原先我说接触的关于">"的解释就是重定向命令,但感觉上面两个列子,都有执行的作用在里面....因为不要>的话,就无法执行...

问题很弱,但搞不懂就很不爽....望大家释疑....多谢
2 发表于 2006-11-16 16:44 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线

Re zgren1979:
  正如你所说,">"的确是重定向符号,它分为"文件重定向"和"设备重定向",重定向可以将屏幕的输出重定向到其它的文件或者设备中。

  上面两个例子里面,有没有">",其前面的命令照样会执行,只是对后面结果有了影响罢了。比如第二例中,没有">"符号的话,其前面不包含echo 的字符就不能被写入"%Temp%\temp.vbs",也就是里面没有内容,这样就会导致后面跟着的Temp.vbs无法正常执行而出错。
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
redtek +1 2006-11-17 21:42
3 发表于 2006-11-16 21:35 ·  中国 广东 佛山 广东睿江科技有限公司
初级用户
积分 52
发帖 24
注册 2006-11-16 06:50
19年会员
UID 70653
性别 男
状态 离线
多谢lxmxn的.....

还是2个问题...

1、可能有点偏题,就是把"echo intAnswer = Msgbox("您好,请点击确定!", vbExclamation , "您好")"写入到TEMP.VBS,就可以被执行VBS吗? 这里我不是太懂,
VBS是写入即执行吗?

2、那C:\>msg %username% /v /w /time:9999 "请确定">nul这个列子,也有>NUL,
而且NUL是什么文件格式都没指定,既然C:\>msg %username% /v /w /time:9999 "请确定"可以在此列中可以被直接执行
这样的重定向的作用是什么,是书写习惯,还是约定俗成..没明白..
4 发表于 2006-11-17 11:39 ·  中国 广东 佛山 广东睿江科技有限公司
初级用户
积分 52
发帖 24
注册 2006-11-16 06:50
19年会员
UID 70653
性别 男
状态 离线
顶一下先....盼呀....
5 发表于 2006-11-17 23:19 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
1、@echo off
echo intAnswer = Msgbox("您好,请点击确定!", vbExclamation , "您好")>%Temp%\Temp.vbs
%Temp%\Temp.vbs

请注意最后一行!


2、>nul 指向空设备
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
6 发表于 2006-11-18 08:02 ·  中国 广东 电信
初级用户
积分 52
发帖 24
注册 2006-11-16 06:50
19年会员
UID 70653
性别 男
状态 离线
Originally posted by ccwan at 2006-11-17 10:19 AM:
1、@echo off
echo intAnswer = Msgbox("您好,请点击确定!", vbExclamation , "您好")>%Temp%\Temp.vbs
%Temp%\Temp.vbs

请注意最后一行!


2、>nul ...


哈哈..多谢提醒...
7 发表于 2006-11-22 19:57 ·  中国 福建 龙岩 电信
初级用户
积分 112
发帖 49
注册 2006-09-23 13:16
19年会员
UID 63468
状态 离线
NUL 是 DOS 系统的一个标准设备,指代空设备,它存在于系统的任何一个路径之下。
对 DOS 系统而言,标准输入是指键盘,而标准输出是显示器和打印机,">"是输出重定向,作用就是把原来输出到标准输出的内容转向到 ">" 后面指定的设备或是文件。是设备的话,由设备输出;是文件的话,清除原文件内容写入新内容,如果原文件不存在则自动创建;要是想在原文件内容上追加新内容,用 ">>" 即可。
论坛跳转: