我创建了一个批处理文件,该文件在 Sage VIP 工资系统的任务调度程序上运行。我遇到的问题是日期 date 返回的是单词date.zip
,而不是实际日期。
代码:
V:
@ECHO OFF
set ldt=%date%
pkzipc -add B:\VIP_Backup_IT\ldt *.pay *.vix
echo ldt
pause
exit
我得到了ldt.zip
但不是日期
答案1
例如%date%
,要引用变量,需要将其名称用百分号括起来:
V:
@ECHO OFF
set ldt=%date%
pkzipc -add B:\VIP_Backup_IT\%ldt% *.pay *.vix
echo %ldt%
pause
exit
注意:根据您的区域设置,您的日期格式可能生成一个作为文件名无效的字符串。
答案2
如果不解析并删除斜线符号,则无法创建或重命名以日期为名称的文件或目录/
这是获取日期并解析日期的一种方法。
@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
echo %YYYY%%MM%%DD%-%HH%%Min%
pkzipc -add B:\VIP_Backup_IT\%YYYY%%MM%%DD%-%HH%%Min% *.pay *.vix
pause
exit