Установить переменное время в SchTasks

Это то, что я сделал до сих пор

import subprocess
import datetime

now = datetime.datetime.now()
now_plus_10 = now + datetime.timedelta(seconds = 10)
path=r"path_to_file"
subprocess.call(['SchTasks', '/Create','/SC', 'ONCE','/TN', 'test1','/TR', path,'/ST', now_plus_10])
subprocess.call(['SchTasks', '/Create','/SC', 'ONCE','/TN', 'test2','/TR', path,'/ST', now_plus_10])

Ошибка, которую я продолжаю получать:

needquote = (" " in arg) or ("\t" in arg) or not arg
TypeError: argument of type 'datetime.datetime' is not iterable

Если я использую время напрямую, как это, задача запланирована успешно:

time="09:06"
subprocess.call(['SchTasks', '/Create','/SC', 'ONCE','/TN', 'test3','/TR', path,'/ST', time])

Если есть какой-то другой способ сделать это, это будет высоко ценится.

Заранее спасибо!

2 ответа

Решение
needquote = (" " in arg) or ("\t" in arg) or not arg

я верю arg имеет тип datetime.datetime и вы используете in оператор на это. in Оператор работает только с объектами, которые могут быть повторены, например, списки, диктанты, множества и т. д. Итак, вам нужно преобразовать arg нанизывать с помощью strftime

Извините, что беспокою вас, ребята. Я получил ответ сейчас

import subprocess
import time

currenttime = time.time()
new= time.strftime("%H:%M:%S", time.localtime(currenttime + 0.6* 60))
path=r"path_to_file"
subprocess.call(['SchTasks', '/Create','/SC', 'ONCE','/TN', 'test1','/TR', path,'/ST', new])
subprocess.call(['SchTasks', '/Create','/SC', 'ONCE','/TN', 'test2','/TR', path,'/ST', new])

Спасибо за помощь в любом случае!

Другие вопросы по тегам