Я новичок в SO. Мне поручено создать расписание задач Windows для запуска .BAT-файла, используя наш Python API, чтобы подтолкнуть его к нашему парку удаленных ПК.Запуск планировщика задач Windows через Python
У меня возникли проблемы с передачей аргументов schtask.exe
.
Вот код:
import subprocess
path = "c:\windows\System32\schtasks.exe"
subprocess.Popen([path, "schtasks /create /SC ONLOGON /TN 'Update_Automation_Beta' /TR 'C:\test\run_admin.bat'"], shell = True)
Примечание: задача просто тестовое задание прямо сейчас, в то время как я пытаюсь понять это. Кроме того, если набирается непосредственно в окне командной строки, он будет работать, удаляя кавычки и т.д.
Если вы хотите использовать список, разделите всю командную строку на отдельные аргументы, но не повторяйте 'schtasks'. И не используйте 'shell = True', так как нет смысла запускать это с помощью cmd.exe. – eryksun
Спасибо, я понял это, выполнив следующее: - разобрав код с помощью shlex.split(), который сделал это чем-то вроде этого: '/ delete', '/ tn', 'update_auto_beta', '/f ' - Извлечение schtasks спасибо –
Командная строка должна быть правильно указана, если 'shlex.split' работает. В Windows 'Popen' необходимо перестроить список в строку для' CreateProcess', поэтому просто передайте команду в виде строки. – eryksun