Eu tenho o seguinte para loop dentro do arquivo em lotes:
for /l %%x in (1, 1, %k%) do (
set "psCommand=powershell -Command "$pword = read-host 'Enter Password2' -AsSecureString ; $BSTR=[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pword) ; [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)""
for /f "usebackq delims=" %%p in (`%psCommand%`) do set password=%%p
)
E sempre recebo o seguinte erro: [System.Runtime.InteropServices.Marshal] :: PtrToStringAuto ($ BSTR) "" era inesperado no momento.
Quando executo o comando fora do loop for, ele funciona.
O que está errado?
ele funciona fora do loop for para eu assumir que as aspas não são o problema aqui
—
user1563721
Como você executa o comando fora do loop for? Que tal colocar o comando entre aspas simples e Enter Password2 entre aspas duplas?
—
Lieven Keersmaekers
set
e um para o-Command
e eles provavelmente estão se cancelando.