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

[其他] 批处理变量的使用

::当前日期
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 编辑 ]

原帖由 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
复制代码

TOP

第一、
你的代码中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
复制代码
技术问题请到论坛发帖求助!

TOP

返回列表