Ответ 1
Кудрявые скобки отбросили все. Постановка кавычек вокруг {bootmgr}
устраняет проблему.
& "bcdedit" /store c:\boot\bcd /set "{bootmgr}" device partition=C:
Я делаю попытку в своей первой powershell script и получаю плохую ошибку параметра при запуске следующего кода. Как передать аргумент команде в powersehll?
& "bcdedit" /store c:\boot\bcd /set {bootmgr} device partition=C:
EDIT: Рабочий код для этого:
& "bcdedit" /store c:\boot\bcd /set "{bootmgr}" device partition=C:
Кудрявые скобки отбросили все. Постановка кавычек вокруг {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:'
Этот метод особенно полезен, когда для команды, которую вы используете, требуются аргументы с строковыми кавычками.