我在批处理文件中有以下循环:
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
)
我总是得到以下错误: [System.Runtime.InteropServices.Marshal] :: PtrToStringAuto($ BSTR)“”此时出乎意料。
当我在for循环外运行命令时,它可以工作。
怎么了?
它在for循环之外工作所以我假设引号不是这里的问题
—
user1563721 2016年
如何在for循环外运行命令?如何在双引号之间将命令放在单引号和Enter Password2之间?
—
Lieven Keersmaekers
set
和一对-Command
,他们可能互相取消。