Мне нужно выполнить program.exe, которые генерируют мне отчеты для ряда дат, я вызываю program.exe в командной строке, но мне нужно установить два аргумента (текущая дата и текущая_дат-6days), когда я называю его:Windows Командная строка получить дату
c:\program.exe current_date current_date-6 (date before 6 days)
я обнаружил, что эта команда дает мне текущую дату: 28-06-2013 %date:~0,2%-%date:~-7,2%-%date:~-4,4%
, но я не могу получить текущая_дата -6 (означает дату 6 дней до)
я должен также позволить пользователю выбрать диапазон даты он хочет ...
как я могу продолжить выполнение программы 1) автоматически (окна Schedular), дав ему два параметра (текущую дату и дату 6 дней до, например) 2) и вручную в то же время, предоставляя пользователям возможность выбора диапазона дат
@echo off
set /a currd=%date:~0,2%
set /a currm=%date:~3,2%
set /a curry=%date:~6,4%
set /a d=%date:~0,2%
set /a m=%date:~3,2%
set /a y=%date:~6,4%
FOR %%A IN (1 2 3 4 5 6) DO (
:loop
set /a d-=1
if %d% LSS 1 (
set d=1
set /a m-=1
if %m% LSS 1 (
set m=12
set /a y-=1
)
)
xcopy /d:%m%-%d%-%y% /l . .. >nul 2>&1 || goto loop
)
start /WAIT /B "" "C:\MyPGM.exe" "%d%-%m%-%y%" "%currd%-%currm%-%curry%"
за 28/06/2013 У меня нет проблем, но за 01/07/2013 он генерирует мне ошибку «String was не признан действительным DateTime "
1) этот '% date: ~ 0,2 (-6)%' не работает для меня. Вы имеете в виду '% date: ~ 0,2%'? 2) что вы имеете в виду с 'currend_date-6'? 3) укажите свой формат даты (вывод 'echo% date%'. – Endoro
Почему у вас нет программы, которую вы закодировали, просто принимайте одну дату и вычитаете из нее 'current_date - 6 дней'? сделайте это, чем делать это в пакетном файле. (Если это всегда current_date, пакетный файл даже не должен его передавать, ваш exe может получить его, когда он будет запущен, поэтому командный файл просто должен его запустить). –
Да, что сказал Кен.Если exe всегда начинается с текущей даты, возможно, единственным параметром, который был принят, является ваше смещение (в этом случае 6). Хотите запустить его раз в две недели? Запланируйте планировщик заданий каждые 14 дней вместо ежедневного, и перейдите в 13 вместо 6. – railsdog