Я также должен заявить, что я запускаю это в контейнере 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
Что происходит здесь, я схожу с ума.Я помещаю команду aws между двумя командами get-date, которые обе запускаются, поэтому команда aws должна выполняться без ошибок, потому что она выполняет ОБА команды get-date.
EDIT: хорошо, теперь я действительно сбит с толку, если я заменюКоманда aws с ерундой по-прежнему выполняет обе команды get-date, и я вижу их вывод в файле журнала.Например, заменив команду aws на «blah.exe --fartfartfart» в скрипте и выполнив задачу, он все равно записывает оба результата 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'