繁体   English   中英

批处理变量串联的循环

[英]Batch variable concatenation for loop

我正在尝试创建一个for循环,该循环输出一定范围的响应。

使用以下可以正常工作:

echo Node1:
dashd-cli masternodelist status 123.123.123.100
echo.
echo Node2:
dashd-cli masternodelist status 123.123.123.200
echo.
echo Node3:
dashd-cli masternodelist status 123.123.123.300

输出:

Node01:{“ 123.123.123.100”:“启用”}

Node02:{“ 123.123.123.200”:“启用”}

Node03:{“ 123.123.123.300”:“启用”}

我现在正在尝试创建一个用于检查节点列表的for循环:

cls
@echo off
set nodeCount=7
set Node1="111.111.111.111:1111"
set Node2="222.222.222.222:2222"
set Node3="333.333.333.333:3333"
set Node4="444.444.444.444:4444"
set Node5="555.555.555.555:5555"
set Node6="666.666.666.666:6666"
set Node7="777.777.777.777:7777"

for /L %%C in (1,1,%nodeCount%) do (
echo Node%%C:
dashd-cli masternodelist status %Node1%
)

上面的方法最多将Node1 IP列出7次,如何使其遍历节点列表? 我很了解%% C,但是我根本不知道在这种情况下如何应用它。

启用delayedexpansion并使用!node%%C!

cls
@echo off
setlocal enabledelayedexpansion
set nodeCount=7
set Node1="111.111.111.111:1111"
set Node2="222.222.222.222:2222"
set Node3="333.333.333.333:3333"
set Node4="444.444.444.444:4444"
set Node5="555.555.555.555:5555"
set Node6="666.666.666.666:6666"
set Node7="777.777.777.777:7777"

for /L %%C in (1,1,%nodeCount%) do (
echo Node%%C:
dashd-cli masternodelist status !Node%%C!
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM