Powershell 如何在变量批脚本中存储url响应

Powershell 如何在变量批脚本中存储url响应,powershell,batch-file,cmd,batch-processing,Powershell,Batch File,Cmd,Batch Processing,我试图将URL的响应存储到批处理脚本中的变量中 例如: set initial=PowerShell -Command "(new-object net.webclient).DownloadString('https://some-url/id')" 我正在尝试存储以下响应: PowerShell -Command "(new-object net.webclient).DownloadString('https://some-url/id')" 转换为变量: 首字母 但这是行不通的。我怎

我试图将URL的响应存储到批处理脚本中的变量中

例如:

set initial=PowerShell -Command "(new-object net.webclient).DownloadString('https://some-url/id')"
我正在尝试存储以下响应:

PowerShell -Command "(new-object net.webclient).DownloadString('https://some-url/id')"
转换为变量:

首字母


但这是行不通的。我怎样才能实现我的目标

用于/f
。像这样的

for /f "usebackq delims=" %%a in (`PowerShell -Command "(new-object net.webclient).DownloadString('https://some-url/id')"`) do set initial=%%a

这是一个演示如何获取公共ip地址的示例:

@echo off
set "URL=http://myexternalip.com/raw"
Call :GetResponse %URL%
echo %initial% 
Pause>nul & exit
::*****************************************************************
:GetResponse <URL>
for /f "usebackq delims=" %%a in (`PowerShell -Command "(new-object net.webclient).DownloadString('%1')"`) do set "initial=%%a"
Exit /b
::*****************************************************************
@echo关闭
设置“URL”=http://myexternalip.com/raw"
调用:GetResponse%URL%
回显%初始%
暂停>取消并退出
::*****************************************************************
:GetResponse
对于/f“usebackq delims=“%%a in(`PowerShell-Command)(`new object net.webclient).DownloadString('%1')”`),请设置“initial=%%a”
退出/b
::*****************************************************************

这似乎只是下载了一个名为
的文件(powershell
,其内容是命令本身。请确保在命令周围使用反勾号。在我的键盘上,它是选项卡上方的键。是的,我是,我复制并粘贴了您的解决方案。好的,我想这取决于URL的内容。某些字符在批处理中会有不同的解释,尤其是
&
。另外,
SET
有一个限制,它只对一行文本有效。如果这是一个问题,也许你应该将输出传输到一个临时文件?你能澄清URL的内容吗?你必须直接在cmd窗口中运行它。在cmd中使用%a,但在批处理文件中使用%%a。不要忘记更改这两个位置。