В командной строке cmd вы можете запустить две команды в одной строке следующим образом:
ipconfig /release & ipconfig /renew
Когда я запускаю эту команду в PowerShell, я получаю:
Ampersand not allowed. The `&` operator is reserved for future use
Есть ли в PowerShell оператор, позволяющий быстро создать эквивалент команды &
в командной строке?
Подойдет любой способ запуска двух команд в одной строке. Я знаю, что могу сделать сценарий, но я ищу что-то еще более неуместное.
Ответы:
Используйте точку с запятой для объединения команд в PowerShell:
источник
Точка с запятой свяжет команды, как указано в предыдущем ответе , хотя есть ключевое отличие в поведении
&
оператора в интерпретаторе команд в стиле MS-DOS.В интерпретаторе команд подстановка переменных происходит при чтении строки. Это допускает некоторые полезные возможности, такие как обмен переменных без промежуточного:
Приведет к:
Насколько я знаю, в PowerShell нет способа воспроизвести это поведение. Некоторые могут утверждать, что это хорошо.
На самом деле есть способ сделать это в PowerShell:
Это приведет к замене значений переменной на одну строку.
источник