Установить переменное время в 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])
Спасибо за помощь в любом случае!