Board logo

标题: [其他] 批处理变量的使用 [打印本页]

作者: kuzo    时间: 2008-3-4 15:26     标题: 批处理变量的使用

::当前日期
set iCurMonth=%date:~5,2%

if  %iCurMonth%=="03" set %iCurMonth%="三月"
echo %iCurMonth%

显示结果总是“03”

即使
if  NOT %iCurMonth%=="03" set %iCurMonth%="三月"
echo %iCurMonth%
显示结果也是“03”

请问一下,批处理中变量怎么使用。

[ 本帖最后由 kuzo 于 2008-3-4 15:28 编辑 ]
作者: 随风    时间: 2008-3-4 15:45

第一、
你的代码中if %iCurMonth%=="03" set %iCurMonth%="三月"
少写了一对引号 if  "%iCurMonth%"=="03" set %iCurMonth%="三月"
第二、
变量%iCurMonth%的值是03
但是set %iCurMonth%="三月"这句的效果是设 变量%iCurMonth%的值即:03="三月"
结果%iCurMonth%的值当然不会改变。
若改为echo %03% 就可以显示"三月"了,但又因为 变量名是数字开头的话,不能用%%来引用变量,所以还是错的,在变量名前面加一个非数字的字符就可以了。
如:
  1. @echo off
  2. set iCurMonth=%date:~5,2%
  3. if "%iCurMonth%"=="03" set _%iCurMonth%="三月"
  4. call echo %%_%iCurMonth%%%
  5. pause>nul
复制代码

作者: 浅默    时间: 2008-3-8 20:41

原帖由 kuzo 于 2008-3-4 15:26 发表
::当前日期
set iCurMonth=%date:~5,2%

这位朋友你的这句后面多了个空格。
还有我想这样的行不行呢?
  1. @echo off
  2. set iCurMonth=%date:~5,2%
  3. if  "%iCurMonth%"=="03" set iCurMonth="三月"
  4. echo %iCurMonth%
  5. pause>nul
复制代码





欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2