我尝试每周一将我的 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