Самый простой вариант наверное через планировщик
Вот пример команды
schtasks /create /tn "My Batnik" /tr %USERPROFILE%\AppData\Local\Temp\1.bat /sc once /sd 21/12/2016 /st 22:40
Создаётся новое задание с именем "My Batnik" (имя произвольное). Указываем путь до файла который нужно запустить. В данном случае это папка temp и файл 1.bat . Указываем дату. Если у чела раскладка русская, то в таком формате день/месяц/год. Ну с временем понятно.Если добавить pause в конец батника, то можно увидеть ответ
Понятно, что в начале твой батник должен был создать в папке темп файл 1.bat с нужным содержимым (это уже на твоё усмотрение). Ну и самоликвидироваться в конце к примеру.
Я тебе указал самый оптимальный путь (папка темп). Если ты выберешь другой и в названиях папок будут содержаться пробелы, то кури синтаксис введя в консоли
Добавлю, что мы создали задание которое будет выполняться однократно. Тоесть в нужную дату и нужное время оно отработает и всё. Другие примеры смотри ниже.
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
И не забывай, что в данном случае батник в папке темп отработает с юзерскими правами, так что ничего глобального он выполнить не сможет. Как запустить bat-файл с повышенными привилегиями смотри
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
(очень полезная вещь).