Что означает "- <", когда вы запускаете powershell? - PullRequest
10 голосов
/ 25 июля 2011

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

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

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

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

Я не представляю, что означает "- <", и не могунайти любую информацию по теме.Любая помощь? </p>

Ответы [ 4 ]

15 голосов
/ 25 июля 2011

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

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

processSomeFile.exe outputFileName.ext < intputFile.ext
1 голос
/ 25 июля 2011
  1. Если значение команды равно «-», текст команды читается из стандартный ввод.

  2. <это просто оператор перенаправления stdout -> stdin

0 голосов
/ 25 июля 2011

Использование операторов ввода-вывода, таких как> и <, в скрипте bash означает, что вы <strong>записываете вывод во внешний файл, т.е.:

echo hello > hello.txt

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

psql -U test test < script.sql

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

0 голосов
/ 25 июля 2011

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...