Batch file 批处理增量值

Batch file 批处理增量值,batch-file,Batch File,我尝试从文件中读取一个值并将其递增。但是如果我增加一个大于8的值,结果是1。这是我的密码: for /f "delims=" %%i in (VERSION.txt) do set ver=%%i set /a ver+=1 echo 0%ver%>>VERSION.txt echo Build: %ver% 我的文件看起来像: 06 07 08 01 02 03 有人能解释一下怎么回事吗?带前导零的数字被解释为八进制数08不是有效的八进制数。前导零的数字被解释为八进制数08不是

我尝试从文件中读取一个值并将其递增。但是如果我增加一个大于8的值,结果是1。这是我的密码:

for /f "delims=" %%i in (VERSION.txt) do set ver=%%i
set /a ver+=1
echo 0%ver%>>VERSION.txt
echo Build: %ver%
我的文件看起来像:

06
07
08
01
02
03

有人能解释一下怎么回事吗?

带前导零的数字被解释为八进制数<代码>08不是有效的八进制数。

前导零的数字被解释为八进制数<代码>08不是有效的八进制数。

前导零的数字被解释为八进制数<代码>08不是有效的八进制数。

前导零的数字被解释为八进制数
08
不是有效的八进制数。

您必须在不使用0的情况下保存您的值:

测试:

set/a toto=08+1

对于解释器,这不是十进制、十六进制或八进制的有效值

你最好这样做:

@echo off
for /f "delims=" %%i in (VERSION.txt) do set ver=%%i
set /a ver+=1
echo %ver%>VERSION.txt
echo Build: 0%ver%
@echo off
for /f "delims=" %%i in (VERSION.txt) do set "ver=%%i"
if  "%ver:~0,1%"=="0" set "ver=%ver:~1%"
set /a ver+=1
echo 0%ver%>>VERSION.txt
echo Build: 0%ver%
编辑:

你可以这样做:

@echo off
for /f "delims=" %%i in (VERSION.txt) do set ver=%%i
set /a ver+=1
echo %ver%>VERSION.txt
echo Build: 0%ver%
@echo off
for /f "delims=" %%i in (VERSION.txt) do set "ver=%%i"
if  "%ver:~0,1%"=="0" set "ver=%ver:~1%"
set /a ver+=1
echo 0%ver%>>VERSION.txt
echo Build: 0%ver%

您必须在不使用0的情况下保存您的值:

测试:

set/a toto=08+1

对于解释器,这不是十进制、十六进制或八进制的有效值

你最好这样做:

@echo off
for /f "delims=" %%i in (VERSION.txt) do set ver=%%i
set /a ver+=1
echo %ver%>VERSION.txt
echo Build: 0%ver%
@echo off
for /f "delims=" %%i in (VERSION.txt) do set "ver=%%i"
if  "%ver:~0,1%"=="0" set "ver=%ver:~1%"
set /a ver+=1
echo 0%ver%>>VERSION.txt
echo Build: 0%ver%
编辑:

你可以这样做:

@echo off
for /f "delims=" %%i in (VERSION.txt) do set ver=%%i
set /a ver+=1
echo %ver%>VERSION.txt
echo Build: 0%ver%
@echo off
for /f "delims=" %%i in (VERSION.txt) do set "ver=%%i"
if  "%ver:~0,1%"=="0" set "ver=%ver:~1%"
set /a ver+=1
echo 0%ver%>>VERSION.txt
echo Build: 0%ver%

您必须在不使用0的情况下保存您的值:

测试:

set/a toto=08+1

对于解释器,这不是十进制、十六进制或八进制的有效值

你最好这样做:

@echo off
for /f "delims=" %%i in (VERSION.txt) do set ver=%%i
set /a ver+=1
echo %ver%>VERSION.txt
echo Build: 0%ver%
@echo off
for /f "delims=" %%i in (VERSION.txt) do set "ver=%%i"
if  "%ver:~0,1%"=="0" set "ver=%ver:~1%"
set /a ver+=1
echo 0%ver%>>VERSION.txt
echo Build: 0%ver%
编辑:

你可以这样做:

@echo off
for /f "delims=" %%i in (VERSION.txt) do set ver=%%i
set /a ver+=1
echo %ver%>VERSION.txt
echo Build: 0%ver%
@echo off
for /f "delims=" %%i in (VERSION.txt) do set "ver=%%i"
if  "%ver:~0,1%"=="0" set "ver=%ver:~1%"
set /a ver+=1
echo 0%ver%>>VERSION.txt
echo Build: 0%ver%

您必须在不使用0的情况下保存您的值:

测试:

set/a toto=08+1

对于解释器,这不是十进制、十六进制或八进制的有效值

你最好这样做:

@echo off
for /f "delims=" %%i in (VERSION.txt) do set ver=%%i
set /a ver+=1
echo %ver%>VERSION.txt
echo Build: 0%ver%
@echo off
for /f "delims=" %%i in (VERSION.txt) do set "ver=%%i"
if  "%ver:~0,1%"=="0" set "ver=%ver:~1%"
set /a ver+=1
echo 0%ver%>>VERSION.txt
echo Build: 0%ver%
编辑:

你可以这样做:

@echo off
for /f "delims=" %%i in (VERSION.txt) do set ver=%%i
set /a ver+=1
echo %ver%>VERSION.txt
echo Build: 0%ver%
@echo off
for /f "delims=" %%i in (VERSION.txt) do set "ver=%%i"
if  "%ver:~0,1%"=="0" set "ver=%ver:~1%"
set /a ver+=1
echo 0%ver%>>VERSION.txt
echo Build: 0%ver%

正如乔伊已经说过的,任何带前导零的数字都被解释为八进制。 但您可以通过在其前面添加一个来进行计算,然后将其剥离:

...
set /a ver=1%%i+1
echo %ver:~1%
...

echo打开
运行它,看看会发生什么。

正如Joey已经说过的,任何带前导零的数字都被解释为八进制。 但您可以通过在其前面添加一个来进行计算,然后将其剥离:

...
set /a ver=1%%i+1
echo %ver:~1%
...

echo打开
运行它,看看会发生什么。

正如Joey已经说过的,任何带前导零的数字都被解释为八进制。 但您可以通过在其前面添加一个来进行计算,然后将其剥离:

...
set /a ver=1%%i+1
echo %ver:~1%
...

echo打开
运行它,看看会发生什么。

正如Joey已经说过的,任何带前导零的数字都被解释为八进制。 但您可以通过在其前面添加一个来进行计算,然后将其剥离:

...
set /a ver=1%%i+1
echo %ver:~1%
...

echo打开的情况下运行它,查看发生了什么。

如果没有尾随零,它将不起作用。十进制数前缀是什么?没有十进制数前缀。必须对第一个字符进行测试,如果值为零,则将其从变量中删除。如果没有尾随的零,则无法工作。十进制数前缀是什么?没有十进制数前缀。必须对第一个字符进行测试,如果值为零,则将其从变量中删除。如果没有尾随的零,则无法工作。十进制数前缀是什么?没有十进制数前缀。必须对第一个字符进行测试,如果值为零,则将其从变量中删除。如果没有尾随的零,则无法工作。十进制数前缀是什么?没有十进制数前缀。必须对第一个字符进行测试,如果值为零,则将其从变量中删除。