2016-02-26 57 views
2

我对Windows批处理脚本的了解很差,我需要一些帮助。Windows批量卷曲到变量

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

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

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 

这是行不通的。

你能帮我吗? 谢谢。

回答

3

试试这个:

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

它几乎成功了!我不得不在两次事件中更改%I,%!I!如果您想直接在控制台或批处理脚本中执行它,差异似乎就在其中。谢谢! – XorX