[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 批处理中当等号作为赋值符号的优先级是怎么样的?

以前只知道组合命令的优先级没有重定向命令的优先级高,但是个人认为当等号作为赋值符号也是一种特殊符号(我想到的仅有用SET赋值时的等号),当此时有其它的特殊符号,又是怎样的执行顺序呢.
以下是个人在百度后写出的,查的很纠结,写的很草率,
  1. @echo off
  2. dir c:\&&dir d:\ >a.txt
  3. start "" "%userprofile%\桌面\a.txt"
  4. rem 由此句不难看出>>比&&的优先级要高,所以先执行的DIR D:\ >>A.TXT,如果要正确输出就改成dir c:\ >a.txt&&dir d:\ >>a.txt
  5. pause
复制代码
  1. @echo off
  2. >a.txt echo 1 &set /p a=<a.txt
  3. del a.txt
  4. echo %a%
  5. pause
复制代码
因为组合命令的优先级没有重定向命令的优先级高
什么样的符号是组合命令,例如: &,&&,||,
什么样的符号是重定向命令,例如: >,>>,<,<&,>&,|
但对于赋值符号实在是没什么想法了,(原因自已很笨,VBS已经很是上火了),

[ 本帖最后由 wc726842270 于 2011-1-11 14:20 编辑 ]

版主动作也太快了,我才发了不到5秒,其中网页还卡了一下,还没来得急修改,就被发现了.

[ 本帖最后由 wc726842270 于 2011-1-11 12:02 编辑 ]

TOP

1,dir dir c:\&&dir d:\ >a.txt
语法错误,两个dir
2,关于 dir c:\&&dir d:\ >a.txt ,要想把两个dir都输出到a.txt
  1. (dir c:\&dir d:\)>a.txt
复制代码
  1. dir c:\ d:\>a.txt
复制代码
3,组合命令字符:&      &&        ||         ()         ;分号    ,逗号
例如
  1. if;1==1,echo ok
复制代码
4,如果硬要比较组合与重定向,组合是在预处理时分隔命令的,重定向是在运行命令才执行的,怎么看也得不出楼主的结论

[ 本帖最后由 hanyeguxing 于 2011-1-11 14:24 编辑 ]
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

回复 3楼 的帖子

没仔细看.多写了一个DIR
另外关于组合命令中的"()"的优先级高于其它的一些特殊符号,所以认为它是最优先的(就像数学中的一样)
关于第4点,版主说的很有道理,(只不过网络上有一些文章叫这种情况为优先级,所以也就学了)

TOP

返回列表