Ответ 1
Попробуйте сделать
iex "./windows/nvflash/nvflash.exe --sbk $SBK"
Кроме того, получите echoargs.exe
из Расширение сообщества PowerShell, чтобы узнать, как аргументы передаются из Powershell в команды и т.д.
Посмотрите на код ниже
$SBK="0x1682CCD8 0x8A1A43EA 0xA532EEB6 0xECFE1D98"
./windows/nvflash/nvflash.exe --sbk 0x1682CCD8 0x8A1A43EA 0xA532EEB6 0xECFE1D98
./windows/nvflash/nvflash.exe --sbk "0x1682CCD8 0x8A1A43EA 0xA532EEB6 0xECFE1D98"
./windows/nvflash/nvflash.exe --sbk $SBK
Я определяю строку var $SBK, а затем я передам ее для некоторого приложения. Первый вызов процесса работает правильно. Второй не удается, поэтому приложение не принимает кавычки. Но третий вызов тоже не с той же ошибкой. Кажется, что powershell передает кавычки, которые вызывают ошибки. Но как их устранить? Спасибо заранее.
Попробуйте сделать
iex "./windows/nvflash/nvflash.exe --sbk $SBK"
Кроме того, получите echoargs.exe
из Расширение сообщества PowerShell, чтобы узнать, как аргументы передаются из Powershell в команды и т.д.
Вероятно, вы не должны использовать Invoke-Expression (см. Это сообщение из команды PowerShell)
Вместо этого вы можете создать массив аргументов, а затем передать их с помощью оператора вызова. Подробнее см. этот пост моей темы.
В вашем случае это выглядит примерно так:
$SBKArgs="--sbk", "0x1682CCD8", "0x8A1A43EA", "0xA532EEB6", "0xECFE1D98"
$cmd = Get-Command ./windows/nvflash/nvflash.exe
& $cmd $sbkargs
Надеюсь, что это поможет