命令行编程问题集

        本文就做为遇到的问题集合吧!

-- 2008.10.08

        1. 注释里面不能有()、<>、[]、|等,如果要用特殊字符注释的话也需要在前面加^;

        2. 习惯了写@echo off,然后苦恼调试怎么这么难,其实,把这句去掉就方便调试了;

 

-- 2008.10.09

        3. for里面不能设置变量。如果for循环层多了、复杂了,就想着先用变量存着,可是不行,不能set变量,如果有的话,该变量一直都是for循环最后一个值衍生的固定结果(绝对不是你想要的)。经常犯这个错,每次查老半天
           错误提示:“系统找不到指定的驱动器。”
           以上说法需要更正,前提是for循环如果多于一次

        4. if、for的结束括号)前,不能有注释 :: 行,报错提示:“此时不应有 )。”

        5. 每次当我想输出一个变量时 echo %var%, 提示:“ECHO 处于打开状态。”,说明%var%是空的,这时候要看看为什么是空了。

        6. 有时候本来是想设置变量的如:var=value,对了吗?错了。为什么? 肯定提示:“'a' 不是内部或外部命令,也不是可运行的程序或批处理文件。”为什么呢? 语法错误了: set var=value。知道了吗?汗~~~
        7. 注释尽量少用变量、特殊字符,不然也会带来不便,别以为注释就可以随便写了

        8. "系统找不到指定的驱动器。"一般出现在if exist %fullpath% 也许加上双引号就好了, if exist "%fullpath%"。还有要注意,如果%fullpath%中含有空格,一定要加引号

        9. 左括号紧接非空行,如果是注释行情况:(感觉有点变态,不知道有没有什么可理解的解释)
           a. 空注释行
                ::
              提示:“命令语法不正确。”
           b. 非空行,后接空行
                :: 注释

                echo.
              提示:“命令语法不正确。”
           c. 非空行,后接注释空行
                :: 注释
                ::
              提示:“系统找不到指定的驱动器。”
           d. 非空行,后接注释非空行
                :: 注释
                :: 注释
              提示:“系统找不到指定的驱动器。”
       
           经验:写注释时最好就一行,并且近邻命令行
           发现问题原因了,都是::惹的祸。突然想起用rem验证一把,结果用rem的话什么问题都没有。哎,郁闷!
          
           搜了下,有解释为:
REM为注释命令,一般用来给程序加上注解,该命令后的内容不被执行,但能回显。
其次, :: 也可以起到rem 的注释作用, 而且更简洁有效; 但有两点需要注意:
第一, 任何以冒号:开头的字符行, 在批处理中都被视作标号, 而直接忽略其后的所有内容。
有效标号:冒号后紧跟一个以字母数字开头的字符串,goto语句可以识别。
无效标号:冒号后紧跟一个非字母数字的一个特殊符号,goto无法识别的标号,可以起到注释作用,所以 :: 常被用作注释符号,其实 :+ 也可起注释作用。
第二, 与rem 不同的是, ::后的字符行在执行时不会回显, 无论是否用echo on打开命令行回显状态, 因为命令解释器不认为他是一个有效的命令行, 就此点来看, rem 在某些场合下将比 :: 更为适用; 另外, rem 可以用于 config.sys 文件中。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值