Windows 任务失败,但没有抛出任何错误,也没有输出任何内容

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

所以我不明白为什么第一个任务是写入文件而第二个任务不是

答案1

powershell someexe --help甚至powershell someexe.exe --help:如果使用不带前缀路径的可执行文件名称,则它仅在环境路径中运行。如果没有它,PowerShell 不会从当前目录执行。

在参数中使用可执行文件的绝对路径/tr(例如powershell c:\myexes\someexe.exe --help)。

避免使用相对路径(例如powershell .\someexe.exe --help),因为 当前目录 .\有点不清楚起始目录没有明确和清晰的定义。

相关内容