Назад | Перейти на главную страницу

Задача Windows не выполняется, но ошибок нет и не выводится

Это создает задачу, которая работает и записывает в файл:

schtasks --% /create /tn "test" /sc minute /mo 10 /ru SYSTEM /tr "powershell get-date | out-file -Encoding:ascii c:\log.log"

Это не создает файл журнала, и я не вижу никаких ошибок:

schtasks --% /create /tn "test2" /sc minute /mo 10 /ru SYSTEM /tr "powershell someexe --help | out-file -Encoding:ascii c:\otherlog.log"

Вторая команда не записывает в файл журнала, почему? Даже если это не удается, он все равно должен записывать в файл. Если я запустил это из командной строки, он все равно будет записывать в файл:

PS C:\> powershell doesntexist --help | out-file -Encoding:ascii c:\fail.log
PS C:\> cat .\fail.log
doesntexist : The term 'doesntexist' is not recognized as the name of a cmdlet, function, scrip
or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ doesntexist --help
+ ~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (doesntexist:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Поэтому я не могу понять, почему первая задача записывает в файл, а вторая - нет.

powershell someexe --help или даже powershell someexe.exe --help: Если имя исполняемого файла используется без префикса пути, оно запускается, только если оно находится в пути среды. Без него PowerShell не запускается из текущего каталога.

Использовать абсолютный путь к исполняемому файлу в /tr аргумент (например, powershell c:\myexes\someexe.exe --help).

Избегайте использования относительных путей (например, powershell .\someexe.exe --help) так как Текущий каталог .\ немного неясно, так как начальный каталог не определено точно и однозначно.