Windows 批量卷曲到变量

Windows batch curl to variable

我对 Windows 中的批处理脚本的了解很差,我需要一些帮助。

我正在尝试创建一个动态脚本以从不同的 EC2 实例启动 selenium 服务器。

我想做的是在启动服务器时自动运行以下脚本:

cd C:\curl-7.47.1-win64-mingw\bin
%comspec% /c curl http://ipecho.net/plain > %HOMEPATH%\desktop\MyIP.txt
set /P IP= <  %HOMEPATH%\desktop\MyIP.txt
cd C:\Selenium\
java -jar selenium-server-standalone-2.52.0.jar -role node -host %IP% -hub http://*******************/grid/register --nodeTimeout 
1200 maxSession 4 -browser browserName=chrome,maxInstances=4,platform=WINDOWS, -Dwebdriver.chrome.driver=chromedriver.exe -
browser browserName=firefox,maxInstances=4,platform=WINDOWS

当我通过 RDP 登录服务器时它有效。但是当它由 EC2 自动启动时,%IP% 变量为空。我不知道发生了什么。也许我需要登录?

现在我正在尝试另一个选项,我决定不使用 "MyIP.txt" 文件并直接将 curl 传递给变量并在 selenium 命令中使用它。但是我不知道具体怎么做...

像...

cd C:\curl-7.47.1-win64-mingw\bin
SET IP=curl http://ipecho.net/plain
cd C:\Selenium\
java -jar selenium-server-standalone-2.52.0.jar -role node -host %IP% -hub http://********************/grid/register --nodeTimeout 
1200 maxSession 4 -browser browserName=chrome,maxInstances=4,platform=WINDOWS, -Dwebdriver.chrome.driver=chromedriver.exe -
browser browserName=firefox,maxInstances=4,platform=WINDOWS

这个不行。

你能帮帮我吗? 谢谢。

如果直接在控制台中使用,试试这个:

for /F %I in ('curl http://ipecho.net/plain') do set ip=%I
echo %ip%

或者您可以在编写批处理脚本 (.bat) 时试试这个:

for /F %%I in ('curl http://ipecho.net/plain') do set ip=%%I
    echo %ip%