Я не знаю, если вы забыли - в вашем вопросе, но это -ExecutionPolicy
. Если этот сценарий не подписан, он также не будет выполнять этот сценарий, вы можете использовать bypass
как политику выполнения, чтобы исключить это.
Я сомневаюсь, что вы можете запускать скрипты и команды одну за другой в командной строке. Добавьте exit $LASTEXITCODE
в скрипт и запустите его с -File C:\script.ps1
.
Если под управлением скрытого вы подразумеваете отсутствие окна консоли, я обычно называю свои сценарии как
powershell.exe -noprofile -executionpolicy bypass -file C:\script.ps1
и никогда не вижу окна.
Чтобы получить вывод вашего скрипта в файл, направьте ваши команды в Tee-Object
"Hello World" | Tee-Object C:\output.file
Вы можете назвать файл как угодно, реализовать логику в своем скрипте так, чтобы имя файла увеличивалось, или - мой личный фаворит - использовать YYYYMMddhhmmss в имени файла.
Обновить
Также взято с технической страницы Microsoft на Powershell:
Блоки скрипта должны быть заключены в фигурные скобки ({}). Вы можете указать блок скрипта только при запуске PowerShell.exe в Windows PowerShell. Результаты сценария возвращаются в родительскую оболочку в виде десериализованных объектов XML, а не живых объектов.
Если значение Command является строкой, команда должна быть последним параметром в команде, потому что любые символы, введенные после команды, интерпретируются как аргументы команды.