windows批处理如何为个位数字增加或者去掉前导0

发布时间 2023-05-09 12:07:01作者: J6`

答案来自 Chat GPT

@echo off
setlocal

rem 设置字符串
set "str=9"

rem 检查字符串长度
if "%str:~1%"=="" (
    set "str=0%str%"
)

echo 结果:%str%

endlocal

在这个示例中,我们首先将字符串9存储在变量str中。然后,我们使用子字符串提取操作%str:~1%来获取字符串的第二个字符之后的子字符串。如果该子字符串为空,则说明原始字符串只有一个字符。在这种情况下,我们使用字符串连接操作符%将一个零和原始字符串连接起来,得到一个新的字符串。最后,我们使用echo命令输出结果。

当你运行脚本时,如果原始字符串只有一个字符,它将在其前面添加一个零,并输出结果为09。如果原始字符串包含多个字符,则不会添加零,并输出原始字符串本身。

这样,你就可以在字符串只有一个字符时,在其前面添加一个零。

去掉前导0

@echo off
setlocal

rem 设置带前导零的数字常量
set "day=09"

rem 去除前导零
if "%day:~0,1%"=="0" set "day=%day:~1%"

rem 执行算术运算
set /A result=day + 1

echo 结果:%result%

endlocal

在这个示例中,我们首先检查变量day的第一个字符是否为零。如果是,我们使用字符串替换操作%day:~1%来去除第一个字符(即前导零)。然后,我们使用set /A命令执行算术运算day + 1,并将结果存储在变量result中。

现在,当你运行脚本时,它将成功地去除前导零并执行算术运算,输出结果为10。请注意,这种方法假设变量day始终包含两位数字。如果变量的长度可能不同,你可能需要进行额外的处理来确保前导零被正确地去除。