Что такое тире ("-") при использовании с pipe ("|") в CMD? - PullRequest
2 голосов
/ 20 декабря 2011

Я хотел создать несколько интерактивных скриптов PowerShell и нашел этот ответ , который я слегка изменил, чтобы он был:

;@Findstr -bv ;@F %0 | powershell -noprofile -command - & goto:eof

# PowerShell Code goes here.

Я понимаю, Findstr передает все строки, которые не начинаются с ;@F, в правую часть канала, а черточка указывает, куда должен идти ввод, но как называется символ тире и где это задокументировано?

Я нашел объяснение оператора канала CMD в Microsoft Использование операторов перенаправления команд , но в нем ничего не говорится о символе тире.

Ответы [ 3 ]

1 голос
/ 20 декабря 2011

Полагаю, вы имеете в виду -, предшествующий &.Он не имеет никакого отношения к оператору канала, это директива для powershell.

Вот описание параметра -Command, взятого из справки powershell (доступ к которому powershell /?)

-Command
    Executes the specified commands (and any parameters) as though they were
    typed at the Windows PowerShell command prompt, and then exits, unless
    NoExit is specified. The value of Command can be "-", a string. or a
    script block.

    If the value of Command is "-", the command text is read from standard
    input.

Кстати - я не осознавал, что FINDSTR принял - в качестве индикатора опции, пока не увидел ваш вопрос.Я только видел и использовал /.Хорошая информация, чтобы знать.

0 голосов
/ 20 декабря 2011

Powershell версии 2 добавляет пункт контекстного меню «Запуск с Powershell», вызываемый правой кнопкой мыши, для запуска сценариев. Здесь вы найдете несколько расширенных расширений оболочки для запуска сценариев Powershell с повышенными привилегиями. Однако если вы просто хотите запустить скрипт Powershell, дважды щелкнув файл, я рекомендую просто вызывать скрипт Powershell из пакетного сценария, а не пытаться встроить код Powershell в пакетный сценарий. В пакетном скрипте используйте это: powershell.exe -file "%~dp0MyScript.ps1", где %~dp0 расширяется до текущего каталога. По сути, это создает загрузчик для вашего скрипта Powershell, который вы можете дважды щелкнуть для запуска скрипта Powershell.

0 голосов
/ 20 декабря 2011

* * * * * * * * * * * * * * * По словам Пауэршелла, примите команду (ы) от стандартного ввода, а не от аргументов. Это не функция в cmd / batch и piping. Это будет работать и с <.

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