Можно ли разбить командную строку PowerShell на несколько строк?
В Visual Basic я могу использовать подчеркивание ( _
), чтобы продолжить команду в следующей строке.
powershell
multiline
eXXL
источник
источник
sh
команды, соглашения bash сохраняются, поэтому вы можете использовать обратную косую черту. В этом случае ваш скрипт также должен иметь окончания в стиле Unix.Ответы:
Вы можете использовать пробел с последующим серьезным акцентом (backtick):
Однако это необходимо только в таких случаях, как показано выше. Обычно вы получаете автоматическое продолжение строки, когда команда не может быть синтаксически завершена в этой точке. Это включает запуск нового элемента конвейера:
будет работать без проблем, так как после
|
команды не может быть завершена, так как отсутствует другой элемент конвейера. Также открывающиеся фигурные скобки или любые другие скобки позволят непосредственно продолжить строку:Аналогично
|
запятой также будет работать в некоторых контекстах:Имейте в виду, однако, подобный в JavaScript Автоматическая вставки точек с запятой , есть некоторые вещи, которые так же сломаны , потому что разрыв строки происходит в точке , где он находится предшествуют действительным заявление:
не будет работать.
Наконец, строки (во всех вариантах) также могут выходить за пределы одной строки:
Они включают разрывы строк внутри строки, затем.
источник
|
и{
.Я только что узнал, что не должно быть никакого символа между обратным тиком и разрывом строки. Даже пробел заставит команду не работать.
источник
В большинстве C-подобных языков я стараюсь размещать свои скобки там, где, как мне кажется, они делают код легким для чтения.
Синтаксический анализатор PowerShell распознает, когда утверждение явно не завершено, и переходит к следующей строке. Например, представьте командлет, который принимает необязательный параметр блока скрипта:
если блок скрипта очень длинный, вы можете написать:
Но это не сработает: парсер увидит два утверждения. Первый,
Get-Foo
а второй блок скриптов. Вместо этого я пишу:Я мог бы использовать символ продолжения строки (`), но это затрудняет чтение кода и вызывает ошибки.
Поскольку этот случай требует, чтобы открытая скобка была в предыдущей строке, я следую этому шаблону везде:
Одновременно, в случае длинных конвейеров, я ломаю после символа трубы (
|
):источник
if
иforeach
иtry
работа тогда? они разрешают блоки сценариев на следующей строке ... это означает, что это возможноЧтобы расширить ответ кристобалито :
Например:
Подпишите сценарий PowerShell в командной строке. Без разрывов строк.
источник
В PowerShell и PowerShell ISE также можно использовать Shift+ Enterв конце каждой строки для многострочного редактирования (вместо стандартного обратного удара
`
).источник
SHIFT-ENTER
хитрости.PSReadLine
модуля или его эквивалента. В стандартной консоли Windows функции вводаEnter
иShift+Enter
функционально эквивалентны.PSReadline
Модуль работает в консоли хоста только (не ISE). 2)Shift+Enter
работает в консоли хоста только при использованииPSReadline
. 3)Shift+Enter
всегда работал в ИСЕ. 4) Если используется консольный хост безPSReadline
,Shift+Enter
функционально эквивалентно нажатиюEnter
.Если вы пытаетесь разделить строки на несколько строк, вы можете использовать «+». Например:
Будет выглядеть так:
источник
Я предполагаю, что вы говорите о командной строке - если это в сценарии, то новая строка действует как разделитель команд.
В командной строке используйте точку с запятой ';'
источник
;
для разделения команды\\
на любую обратную косую черту\
."'
для передачи безопасного адреса для переключения команды, например "PATH".Эта команда ps1 устанавливает языковой сертификат pfx.
источник
Существует так много способов продолжить строку в powershell, с помощью пробелов, скобок, скобок, операторов, точек, даже с запятой. Вот блог об этом: https://get-powershellblog.blogspot.com/2017/07/bye-bye-backtick-natural-line.html
Вы можете продолжить сразу после таких утверждений, как foreach, и если так.
источник
источник
не использует обратную цитату
источник
Просто используйте символ `для разделения команд на многострочном
источник
Просто добавьте угловой случай здесь. Это может сэкономить вам 5 минут. Если вы используете цепочку действий, вам нужно поставить «.» в конце строки оставьте пробел, за которым следует «` »(обратный удар). Я нашел это трудным путем.
источник