Что означает "- <" при запуске 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, вы можете получить больше информации ЗДЕСЬ