Что нового

Добавить задание в планировщик

sarge

Новичок
Сообщения
15
Репутация
0
Здравствуйте,
Необходимо добавить в планировщик задание по запуску файла типа такого "test.exe opt1 opt2" c пометкой на удаление после единственного запуска.
По идее это должно выглядеть так:
Код:
Run(@ComSpec & " /c " & "SchTasks /Create /SC ONCE /TN MyTask /TR '\test.exe opt1 opt2'  /ST 11:56 /Z")

Но никак не получается добавить это в планировщик винды :-(
Получается в простой форме без опций типа:
Код:
Run(@ComSpec & " /c " & "SchTasks /Create /SC ONCE /TN MyTask /TR \test.exe  /ST 11:56")

Но это мне не подходит.
Подскажите возможно ли сделать такое(первую строку) в autoit?
Или может быть есть какой-то свой планирощик?
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
SchTasks.exe - это консольная утилита. Сначала добейтесь работы команды в консоли CMD. Затем, скопируйте строку из консоли в скрипт.
 
Автор
S

sarge

Новичок
Сообщения
15
Репутация
0
Перечитал все опции.
Уточняю, из командной строки работает конструкция вида:
Код:
schtasks /create /SC ONCE /RU "NT AUTHORITY\LOCALSERVICE" /SD 11/12/2020 /ST 12:00:00 /TN "test2" /TR "'C:\INSTALL\test.exe' 1 2" /v1 /Z

Но в autoit, я никак не могу прописать это дело. Т.е. вот так не работает:
Код:
Run(@ComSpec & " /c " & "schtasks /create /SC ONCE /RU 'NT AUTHORITY\LOCALSERVICE' /SD 11/12/2020 /ST 12:00:00 /TN 'test2' /TR "'C:\INSTALL\test.exe' 1 2" /v1 /Z")

Насколько я понимаю, дело в том что scite не воспринимает дополнительные кавычки.
Или я ошибаюсь?
Как-то можно решить проблему?
 

xXx

╚{■_■}╗
Меценат
Сообщения
248
Репутация
95
Как-то можно решить проблему?
Переименуйте файл "test.exe" в "test.exe 1 2" - тогда сработает :smile:
Сообщение автоматически объединено:

scite не воспринимает дополнительные кавычки
Autoit не воспринимает синтаксически неправильно составленную строку. Вы в последнем своем посте сами запутались в кавычках.
Я так понимаю "1 2" - это аргументы запуска "test.exe". Если это так и нет возможности изменить код данного исполняемого файла, то напишите свой .exe который будет запускать этот с нужными параметрами.
Сообщение автоматически объединено:

Или же составьте .XML файл задачи и импортируйте его по средствам "/XML".
 
Последнее редактирование:

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
Уточняю, из командной строки работает конструкция вида:
Код:
#RequireAdmin
#include <AutoItConstants.au3>
#include <WinAPIMisc.au3>

Example()

Func Example()
    Local $iPID = Run('schtasks /create /SC ONCE /RU "NT AUTHORITY\LOCALSERVICE" /SD 11/12/2020 /ST 12:00:00 /TN "test2" /TR "''C:\INSTALL\test.exe'' 1 2" /v1 /Z /F', _
            @SystemDir, @SW_HIDE, $STDERR_MERGED)
    ProcessWaitClose($iPID)
    MsgBox(0, Default, _WinAPI_OemToChar(StdoutRead($iPID)))
EndFunc   ;==>Example
 
Последнее редактирование:
Автор
S

sarge

Новичок
Сообщения
15
Репутация
0
@Tempo Спасибо за ваш ответ.
Я разобрался двумя способами. Один с двойными кавычками выглядит так:
Код:
Run(@ComSpec & " /c " & "schtasks /create /SC ONCE /RU ""NT AUTHORITY\LOCALSERVICE"" /SD 11/12/2020 /ST 12:00:00 /TN ""test2"" /TR ""C:\test.exe 1 2"" /v1 /Z")

Но что если опции 1 и 2, а также время старта будут переменными, считываемыми откуда то еще? В кавычках они не интерпретируются. И имя, в случае нескольких задач в день, тоже должно быть разным..
Тогда рабочий вариант вот такой:
Код:
ShellExecute('schtasks.exe', '/create /TN "' & $sName & '" /TR "' & @ScriptDir & '\test.exe ' & $sURL & ' ' & $i & '" /SC ONCE /SD "' & $sDate1 & '" /ST "' & $sTime1 & '" /RU "NT AUTHORITY\LOCALSERVICE" /v1 /Z')

Где $sName - имя задачи, $sURL - ссылка по которой перейдет браузер, $i - счетчик.

И тут возник другой вопрос!
А как бы сделать импорт задачи в планировщик из файла excel или еще лучше, из гугл таблиц?
Т.е. в файле или таблице стоит время и ссылка, а autoit их с какой-то периодичностью читает и вносит в планировщик.
Или же это невозможно в autoit и мне надо рассматривать что-то другое?

P.S. Может быть для этого вопроса стоит поднять отдельную тему?..
 
Верх