Что означает "- <" при запуске powershell?

Рекомендуемый способ запуска скриптов -

powershell.exe -NonInteractive -Command " & some.ps1 "

Однако, например, бегун TeamCity PowerShell использует:

powershell.exe -NonInteractive -Command - < some.ps1

У меня нет идеи, что "- <" означает и не может найти никакой информации по теме. Любая помощь?

Ответ 1

Поскольку powershell.exe вызывается через оболочку Windows, это то же самое, что и в обычной командной строке (cmd.exe). В этой ситуации < передает файл на стандартный ввод (stdin) предыдущей команды. В справке powershell.exe указано, что если значение -Command просто -, текст команды считывается со стандартного ввода.

Здесь более самодокументированная демонстрация < в cmd.exe:

processSomeFile.exe outputFileName.ext < intputFile.ext

Ответ 2

  • Если значение команды "-", текст команды считывается из стандартный ввод.

  • < это просто оператор stdout → stdin redirection

Ответ 3

Я бы сказал, что рекомендуемый способ выполнить script с параметром -File:

powershell.exe -NonInteractive -Command -File some.ps1

Что касается вашего вопроса, то '<' символ зарезервирован и не может использоваться в PowerShell.

Ответ 4

Используя операторы ввода/вывода, такие как > и < в bash script означает, что вы пишите вывод во внешний файл, то есть:

echo hello > hello.txt

или вы получите ввод из внешнего файла, то есть:

psql -U test test < script.sql

та же логика применяется к окнам powershell, вы можете получить больше информации ЗДЕСЬ