Я создал командный файл, который запускается в планировщике задач для системы начисления заработной платы Sage VIP. Проблема, которую я получаю, заключается в том, что дата возвращает слово date.zip
, а не фактическую дату.
Код:
V:
@ECHO OFF
set ldt=%date%
pkzipc -add B:\VIP_Backup_IT\ldt *.pay *.vix
echo ldt
pause
exit
Я получаю ldt.zip
а не свидание
echo ldt
будет отображатьсяldt
. Однако, чтобы отобразить содержимое переменной, которое вам нужноecho %ldt%
, если только вам не нужноldt
где-то еще илиpkzipc
команда будет работать до полуночи, ее проще забытьldt
и просто использоватьecho %date%
.ldt
предназначалось как буквальное имя файла. Если вы хотите использовать%ldt%
имя файла, посмотрите ответы Techie007 и Пола, хотя последнее сложнее, чем нужно (см. Мой комментарий под ним).Ответы:
Например
%date%
, чтобы ссылаться на переменные, вам нужно обернуть их имя в процентные знаки:Примечание. В зависимости от региональных настроек формат даты может создавать строку, которая недопустима в качестве имени файла.
источник
Вы не можете создать или переименовать файл или каталог с датой в качестве имени без разбора и удаления символа косой черты
/
Вот один из способов получить дату и разобрать ее.
источник
for /f "tokens=1,2,3 delims=/" %%a in ('echo %date%') do ltd=%%c%%b%%a
./
не включен в региональных строках даты, то%ldt%
будет содержать так же , как%date%
, например2015-09-23
.