我试图在个位数前面加一个0,数字是1-15。如果数字小于1,那么它就可以忽略它了。当我运行这个,它只是崩溃,说10是不期望在这个时候。我很确定这个方法很糟糕。
if %slide1% lss 10 set slide1=0%R1%
if %slide2% lss 10 set slide2=0%R2%
if %slide3% lss 10 set slide3=0%R3%
if %slide4% lss 10 set slide4=0%R4%
if %slide5% lss 10 set slide5=0%R5%
if %slide6% lss 10 set slide6=0%R6%
if %slide7% lss 10 set slide7=0%R7%
if %slide8% lss 10 set slide8=0%R8%
if %slide9% lss 10 set slide9=0%R9%
if %slide10% lss 10 set slide10=0%R10%
if %slide11% lss 10 set slide11=0%R11%
if %slide12% lss 10 set slide12=0%R12%
if %slide13% lss 10 set slide13=0%R13%
if %slide14% lss 10 set slide14=0%R14%
if %slide15% lss 10 set slide15=0%R15%
if %slide16% lss 10 set slide16=0%R16%
echo %slide1% %slide2% %slide3% %slide4%
echo %slide5% %slide6% %slide7% %slide8%
echo %slide9% %slide10% %slide11% %slide12%
echo %slide13% %slide14% %slide15% %slide16%发布于 2017-09-17 16:22:32
有一个简单的解决方案,可以为数字0 ( 1 to 9 )获得一个带有前导9的两位数字。
@echo off
set "Number=1"
:Loop
set "TwoDigitNumber=0%Number%"
set "slide%Number%=%TwoDigitNumber:~-2%"
set /A Number+=1
if %Number% LSS 17 goto Loop
echo %slide1% %slide2% %slide3% %slide4%
echo %slide5% %slide6% %slide7% %slide8%
echo %slide9% %slide10% %slide11% %slide12%
echo %slide13% %slide14% %slide15% %slide16%当前数字作为字符串分配给环境变量TwoDigitNumber,其前导0独立于数字值。
然后将TwoDigitNumber的最后两个字符作为字符串分配给目标环境变量。
带有错误消息的批处理(没有崩溃)的退出
目前预计不会有10点
很可能是由任何%slideX%扩展为空的行引起的,因为环境变量slideX根本没有定义,导致命令行无效:
if lss 10 set slide1=01要了解所使用的命令及其工作方式,请打开命令提示符窗口,在那里执行以下命令,并非常仔细地读取为每个命令显示的所有帮助页。
echo /?goto /?if /?set /?https://stackoverflow.com/questions/46265917
复制相似问题