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

输出未重定向到windows任务内的文件,windows,docker,scheduled-tasks,taskscheduler,windows-task-scheduler,Windows,Docker,Scheduled Tasks,Taskscheduler,Windows Task Scheduler,我还应该声明我在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.tx

我还应该声明我在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"
任务运行脚本并将其写入文件:

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
但是,当直接从控制台运行时,它会将输出写入文件:

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命令必须无误地执行,因为它同时运行两个get date命令

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

EDIT2(重定向所有输出):

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

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'
C:\Users\ContainerAdministrator\AppData\Roaming\Python\Python37\Scripts\aws.cmd
:回溯(最近一次呼叫最后一次):
在C:\getdate.ps1:1字符:6
+请尝试{C:\Users\ContainerAdministrator\AppData\Roaming\Python\Python37\。。。
+      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+CategoryInfo:NotSpecified:(回溯(最近一次调用)
::字符串)[],RemoteException
+FullyQualifiedErrorId:NativeCommandError
文件“C:\Users\ContainerAdministrator\AppData\Roaming\Python\Python37\Scripts
\aws.cmd”,第50行
导入awscli.clidriver
ModuleNotFoundError:没有名为“awscli”的模块

我安装了--user开关,将其安装到程序文件中,当系统用户

PowerShell继续执行脚本时,可以从任务中访问它,因为它有一类称为非终止错误的错误。在脚本级别,可以设置
$ErrorActionPreference=“Stop”
要让它因为这些错误而真正停止。这是路径,这是python安装的地方,这就是问题所在,不要认为这是问题所在,因为它在任务之外运行正常?我的第二个编辑有什么问题?我用--user安装它是因为文档中说了这一点,但在这种情况下,我认为这是问题的原因是的是的,你是r将任务作为系统运行,这将不会具有ContainerAdministrator帐户的每用户
路径
值,也不会访问每用户安装的模块。