Я создал командный файл, который запускается в планировщике задач для системы начисления заработной платы 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 а не дату

2 ответа2

0

Вы не можете создавать или переименовывать файл или каталог с датой в качестве имени без разбора и удаления символа косой черты /

Вот один из способов получить дату и разобрать ее.

@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
0

Как и %date% , для ссылки на переменные вам нужно заключить их имя в процентные знаки:

V:
@ECHO OFF
set ldt=%date%
pkzipc -add B:\VIP_Backup_IT\%ldt% *.pay *.vix
echo %ldt%
pause
exit

Примечание. В зависимости от региональных настроек формат даты может создавать строку, которая недопустима в качестве имени файла.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .