如何在批处理脚本(Windows)中从 Powershell 获取字符串?

如何在批处理脚本(Windows)中从 Powershell 获取字符串?

我有一个使用invoke-request获取远程ID字符串的脚本。如何在.bat脚本中检索instanceID的值并将其设置为(SET instanceId)

powershell $instanceId =(Invoke-WebRequest -Uri http://169.254.169.254/latest/meta-data/instance-id).Content exit

特恩克斯

答案1

  • 该变量未在 PoSh 中设置 - 而只是输出。
  • 批处理将 powershell 命令包装在 /f 循环的解析中并设置批处理变量。

@Echo off
For /f "usebackqdelims=" %%A in (
  `Powershell.exe -nologo -NoProfile -command "(Invoke-WebRequest -Uri http://169.254.169.254/latest/meta-data/instance-id).Content"`
) Do Set InstanceID=%%A
Echo InstanceID=%InstanceID%
Pause

相关内容