中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 关于">"的疑惑....... 上一主题 | 下一主题
zgren1979
初级用户





积分 52
发帖 24
注册 2006-11-16
状态 离线
『楼 主』:  关于">"的疑惑.......

在批处理版区,看到一些批处理的列子,其中关于">"的用法,很有疑惑....

比如说:

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



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

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

问题很弱,但搞不懂就很不爽....望大家释疑....多谢

2006-11-16 12:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 2 楼』:  


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

  上面两个例子里面,有没有">",其前面的命令照样会执行,只是对后面结果有了影响罢了。比如第二例中,没有">"符号的话,其前面不包含echo 的字符就不能被写入"%Temp%\temp.vbs",也就是里面没有内容,这样就会导致后面跟着的Temp.vbs无法正常执行而出错。


   此帖被 +1 点积分     点击查看详情   
评分人:【 redtek 分数: +1  时间:2006-11-17 21:42


2006-11-16 16:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zgren1979
初级用户





积分 52
发帖 24
注册 2006-11-16
状态 离线
『第 3 楼』:  

多谢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 "请确定"可以在此列中可以被直接执行
这样的重定向的作用是什么,是书写习惯,还是约定俗成..没明白..

2006-11-16 21:35
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zgren1979
初级用户





积分 52
发帖 24
注册 2006-11-16
状态 离线
『第 4 楼』:  

顶一下先....盼呀....

2006-11-17 11:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 5 楼』:  

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

请注意最后一行!


2、>nul 指向空设备



三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2006-11-17 23:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zgren1979
初级用户





积分 52
发帖 24
注册 2006-11-16
状态 离线
『第 6 楼』:  



  Quote:
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  ...

哈哈..多谢提醒...

2006-11-18 08:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
DOS95
初级用户





积分 112
发帖 49
注册 2006-9-23
状态 离线
『第 7 楼』:  

NUL 是 DOS 系统的一个标准设备,指代空设备,它存在于系统的任何一个路径之下。
对 DOS 系统而言,标准输入是指键盘,而标准输出是显示器和打印机,">"是输出重定向,作用就是把原来输出到标准输出的内容转向到 ">" 后面指定的设备或是文件。是设备的话,由设备输出;是文件的话,清除原文件内容写入新内容,如果原文件不存在则自动创建;要是想在原文件内容上追加新内容,用 ">>" 即可。

2006-11-22 19:57
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: