我的增量号码计划出了什么问题?

时间:2014-05-04 21:05:04

标签: batch-file

我试图创建一个程序,如果定义了变量 problem ,请添加一个。如果没有,请创建它并返回到开头。然而,当我运行它时,我得到的只是一个零列表。这是为什么?

@echo off
setlocal enabledelayedexpansion
:start
if exist problem (set /a problem=%problem%+1) else (set problem=0)
echo %problem%
goto start

2 个答案:

答案 0 :(得分:1)

我正在使用if exist,用于测试目录或文件是否存在。在这种情况下,使用变量时应该使用的是if defined

答案 1 :(得分:0)

您的计划有几个细节:

  • enabledelayedexpansion部分不是必需的,因为您的程序不使用!变量!延迟扩张。
  • set /a命令不需要扩展变量值,因此set /a problem=problem+1就足够了;但是,更简单的方法是:set /a problem+=1
  • set /a命令尝试操作未定义的变量时,它会自动创建零值。这意味着不需要整个if defined ...命令。

这样,你的程序可以简单:

@echo off
setlocal
:start
set /a problem+=1
echo %problem%
goto start