输出未重定向到 windows 任务内的文件

Output not redirected to file inside of a windows task

我还应该声明我 运行 将其放在 windows 容器中。

我正在尝试在文件中获取 aws.cmd 的输出,但是当 运行 在任务中时它没有发送任何输出 - 我无法弄清楚为什么。

如果我创建以下脚本:

'get-date | out-file c:\logs\date.txt; C:\users\containeradministrator\appdata\Roaming\Python\Python37\Scripts\aws.cmd --version | out-file -append c:\logs\date.txt; getdate | out-file -append c:\logs\date.txt' > getdate.ps1

然后创建一个任务:

schtasks --% /create /tn "test-date" /sc minute /mo 1 /ru SYSTEM /tr "powershell -file c:/getdate.ps1"

任务 运行s 脚本并将其写入文件:

PS C:\> cat C:\logs\date.txt

Wednesday, May 23, 2018 2:38:00 PM



Wednesday, May 23, 2018 2:38:02 PM

然而,当 运行直接从控制台将输出写入文件时:

PS C:\> C:\users\containeradministrator\appdata\Roaming\Python\Python37\Scripts\aws.cmd --version > C:\logs\consoletest.txt
PS C:\> cat C:\logs\consoletest.txt
aws-cli/1.15.24 Python/3.7.0b4 Windows/10 botocore/1.10.24

这是怎么回事我快疯了。我将 aws 命令夹在两个都 运行 的 get-date 命令之间,因此 aws 命令必须无误地执行,因为它 运行s 两个 get-date 命令。

编辑:好的,现在我真的很困惑,如果我用废话替换 aws 命令,它仍然 运行 都是 get-date 命令,我在日志文件中看到它们的输出。例如,在脚本中用 "blah.exe --fartfartfart" 替换 aws 命令并执行任务,它仍然将两个 get-date 输出写入文件而没有错误。为什么?!该脚本至少应该在那个错误的命令下失败!我不明白发生了什么

EDIT2(重定向所有输出):

try {
  C:\Users\ContainerAdministrator\AppData\Roaming\Python\Python37\Scripts\aws.cmd --version *>> c:\logs\date.txt
}
catch {
  $_.Exception | out-file c:\logs\date.txt
}
get-date | out-file -apend c:\logs\date.txt

重定向所有输出我看到这个错误:

C:\Users\ContainerAdministrator\AppData\Roaming\Python\Python37\Scripts\aws.cmd
 : Traceback (most recent call last):
At C:\getdate.ps1:1 char:6
+ try {C:\Users\ContainerAdministrator\AppData\Roaming\Python\Python37\ ...
+      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (Traceback (most recent call last)
   ::String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

  File "C:\Users\ContainerAdministrator\AppData\Roaming\Python\Python37\Scripts
\aws.cmd", line 50, in <module>
    import awscli.clidriver
ModuleNotFoundError: No module named 'awscli'
 pip install awscli --upgrade --user

我安装了 --user 开关,删除了将其安装到程序文件并且可以作为系统用户从任务中访问它