为什么减法之后批处理脚本中会产生一个多余的空格?

为什么减法之后批处理脚本中会产生一个多余的空格?

我尝试每周一将我的 dbf 文件复制到备份文件夹中。

如果星期一不大于 7,那么它将复制上个月的文件。

当我从月份中减去 1 时,它会增加一个额外的空格。

cls
@echo off

for /F "tokens=1-4 delims=/ " %%i in ('date /t') do (
set WD=%%i
set D=%%j
set M=%%k
set Y=%%l
) 

set day="SUN"
set now="%WD%"
set /a ss=%M%-1

set j=0%ss%

IF /I "%now%"=="%day%"  ( 
    set month=%M%
) ELSE ( 
    IF %D% LEQ 7 ( 
        set month=%j% 
    ) ELSE (
            set month=%M% 
        )
    )

echo S2?%month%160.dbf

电流输出:

S2?03 160.dbf 

期望输出:

S2?03160.dbf 

我的代码有什么问题?

答案1

如果您在文本编辑器中转到每一行的末尾,您会发现有两个 SET 语句末尾有一个多余的尾随空格。您可以通过删除多余的空格来解决这个问题。

使用 SET 时的一个好习惯是将整个赋值括在引号中。最后一个引号后的所有文本都将被忽略,因此您不必担心无意中出现的尾随空格:

set "var=value"  This text after the last quote is ignored

相关内容