我需要一个从文件中读取数字的批处理,将其递增并将其保存回此文件中...这就是我想出的:
@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
)
起初它以一种奇怪的方式工作,从文件中读取数字的结果似乎是一个小的随机数,总和的结果似乎也是随机的......我不知道我做了什么,但是现在它甚至没有将文件中的数字读入变量......
提前感谢您的帮助!
答案 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
)