Аргумент командной строки Powershell с пробелами и фигурными скобками?
Я делаю попытку моего первого скрипта powershell и получаю ошибку неверного параметра при выполнении следующего кода. Как я могу передать аргумент команде в powersehll?
& "bcdedit" /store c:\boot\bcd /set {bootmgr} device partition=C:
РЕДАКТИРОВАТЬ: Рабочий код для этого:
& "bcdedit" /store c:\boot\bcd /set "{bootmgr}" device partition=C:
2 ответа
Решение
Кудрявые скобки скинули все. Размещать цитаты {bootmgr}
исправил проблему.
& "bcdedit" /store c:\boot\bcd /set "{bootmgr}" device partition=C:
Проблема, с которой вы сталкиваетесь, заключается в том, что анализатор PowerShell работает не так, как cmd.exe
парсер делает. Одним из способов решения этой проблемы является передача вашей команды cmd.exe
и пусть это делает разбор.
Для этого передайте команду cmd.exe
с использованием /c
опция в виде строки в одинарных кавычках.
cmd.exe /c 'bcdedit /store c:\boot\bcd /set {bootmgr} device partition=C:'
Этот метод особенно полезен, когда используемая команда требует аргументов в кавычках.