Board logo

标题: 关于">"的疑惑....... [打印本页]

作者: zgren1979     时间: 2006-11-16 12:15    标题: 关于">"的疑惑.......

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

比如说:

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



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

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

问题很弱,但搞不懂就很不爽....望大家释疑....多谢
作者: lxmxn     时间: 2006-11-16 16:44

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

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

作者: zgren1979     时间: 2006-11-16 21:35
多谢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 "请确定"可以在此列中可以被直接执行
这样的重定向的作用是什么,是书写习惯,还是约定俗成..没明白..
作者: zgren1979     时间: 2006-11-17 11:39
顶一下先....盼呀....
作者: ccwan     时间: 2006-11-17 23:19
1、@echo off
echo intAnswer = Msgbox("您好,请点击确定!", vbExclamation , "您好")>%Temp%\Temp.vbs
%Temp%\Temp.vbs

请注意最后一行!


2、>nul 指向空设备
作者: zgren1979     时间: 2006-11-18 08:02


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

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