这个批处理脚本有什么问题?

时间:2011-04-25 20:02:29

标签: windows batch-file

我需要一个从文件中读取数字的批处理,将其递增并将其保存回此文件中...这就是我想出的:

@ECHO OFF
SETLOCAL EnableDelayedExpansion

IF EXIST script\BUILDVERSION (
  SET /p input = <script\BUILDVERSION
  SET /a result=%input%+1
  ECHO %result% > script\BUILDVERSION
) ELSE (
  ECHO 0 > script\BUILDVERSION
)

起初它以一种奇怪的方式工作,从文件中读取数字的结果似乎是一个小的随机数,总和的结果似乎也是随机的......我不知道我做了什么,但是现在它甚至没有将文件中的数字读入变量......

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

而不是%input%%result%,请尝试使用!input!!result!。使用延迟扩展时,这似乎更好。此外,请确保从文件中读取时没有任何不必要的空格。你最终会得到:

@ECHO OFF
SETLOCAL EnableDelayedExpansion

IF EXIST script\BUILDVERSION (
  SET /p input=<script\BUILDVERSION
  SET /a result=!input!+1
  ECHO !result! > script\BUILDVERSION
) ELSE (
  ECHO 0 > script\BUILDVERSION
)