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

特别感谢pusofalse 的教程

〓〓〓〓 〓〓〓〓 〓〓〓〓 〓〓〓〓 〓〓〓〓 〓〓〓〓 〓〓〓〓 〓〓〓〓 〓〓〓
                                                    自己再分析下

在学习这篇文章的时候特别感谢pusofalse的指点

我把pusofalse的某些辅导我的东西帖出来,一起看下

  1. @echo off
  2. color b0
  3. title set 比较大小练习
  4. @mode  con cols=30 lines=15
  5. set a= 150
  6. set b= 80
  7. if not a  lss b    echo a 他吗的造反了,竟然大于b了,哈哈
  8. echo.&echo.
  9. echo.&echo.
  10. pause
复制代码
我运行了,竟然出错了,明明是 a >b 的,现在怎么出错了呢?

怪了。经过pusofalse的指点

理由是这样的....
───────────────────────────────────────

这句 if not a lss b  echo a 他吗的造反了,竟然大于b了,哈哈

系统识别为 a 和b为常量,而并非变量,所以他判断的是常量的大小

系统规定  a<A<b<B<c<C<d<D<e.......<z<Z 这是字母从小到大的顺序

所以 以上代码并不显示

必须改成
  1. @echo off
  2. color b0
  3. title set 比较大小练习
  4. @mode  con cols=30 lines=15
  5. set a= 150
  6. set b= 80
  7. if not %a%  lss %b%    echo a 他吗的造反了,竟然大于b了,哈哈
  8. echo.&echo.
  9. echo.&echo.
  10. pause
复制代码
这样系统才认识a是变量 ,是set设定的值 150,仅仅 a ,就是一个常量。

%a% 就可以识别变量,那%a% 与%%a 又有什么区别呢

于是乎,我又去问pusofalse了,呵呵

他说。。%%a 是for 命令的变量,在for命令里会被识别

%a% 是set命令的变量,在set命令里会被识别为变量。
  1. for %%a in (1 2 3) do echo %%a
  2. pause
复制代码
而不是下面的代码,下面的代码运行就出现错误。呵呵
。。
  1. @echo off
  2. for %a% in (1 2 3) do echo %a%
  3. pause
复制代码
其他 pusofalse 还说 for 命令中的 大小写是区分的,

是不一样的。例如 %%A 与%%a 是不一样的

下面的代码就出错。
  1. @echo off
  2. for %%A in (1 2 3) do echo %%a
  3. pause
复制代码
而在set 中并不区分 大小写。


═╬╬══╬╬══╬╬══╬╬══╬╬══╬╬══╬╬══╬╬══╬╬══╬╬
特别感谢pusofalse的解答。我把他说的都写上来了,以前学习批处理,见for  if  set

就跑。说自己不搞这些,太难,看来,我必须搞了,搞了一年多,这命令不懂,很难

杀进 批处理的大门!

═╬╬══╬╬══╬╬══╬╬══╬╬══╬╬══╬╬══╬╬══╬╬══╬╬


[ 本帖最后由 lixiaodaoaaa 于 2008-10-17 05:07 编辑 ]

TOP

返回列表