Как создать пакетный файл для сохранения в качестве даты

0

Я создал командный файл, который запускается в планировщике задач для системы начисления заработной платы 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%.
AFH
Я думал, что ваше второе использование ldtпредназначалось как буквальное имя файла. Если вы хотите использовать %ldt%имя файла, посмотрите ответы Techie007 и Пола, хотя последнее сложнее, чем нужно (см. Мой комментарий под ним).
AFH

Ответы:

0

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

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

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

Ƭᴇcʜιᴇ007
источник
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
Павел
источник
Это излишне сложно - тот же результат будет достигнут с for /f "tokens=1,2,3 delims=/" %%a in ('echo %date%') do ltd=%%c%%b%%a.
AFH
Обратите внимание , что если /не включен в региональных строках даты, то %ldt%будет содержать так же , как %date%, например 2015-09-23.
AFH
@AFH Я нашел более простой способ охватить любую случайность , чем более короткий материал, но вызывает много вопросов .
Пол