批处理for循环变量赋值失败:无法设置4位补零数值变量
批处理变量赋值失败的解决办法
你的问题根源在于变量赋值时等号两侧的空格:
在批处理中,set命令里的等号左右不能有空格,否则会把空格当成变量名的一部分。你写的set f = !filenum:~-4!实际上创建了一个名为f (末尾带空格)的变量,而不是你预期的f,所以!f!会被判定为空,输出“MyVar is NOT defined”。
修改后的代码如下:
@echo off setlocal EnableDelayedExpansion for /L %%i in (1, 1, 10) do ( echo %%i set filenum=0000%%i echo filenum !filenum! echo !filenum:~-4! set f=!filenum:~-4! REM 去掉等号两侧的空格 IF "!f!"=="" ECHO MyVar is NOT defined echo 补位后的值:!f! REM 可添加此行验证结果 )
运行修改后的代码,就能正确将4位补位后的数值赋值给变量f,不会再输出未定义的提示。
内容的提问来源于stack exchange,提问作者Jesus Soto
相关产品推荐
相关产品推荐

