我有几个服务器名称的列表,其中包含服务器名称+环境的组合
示例:VHS001 DEV、VHS002 UAT、VHS003 PROD。我需要过滤环境名称,只需要服务器名称。
下面是我尝试的代码,但我只能得到第一个服务器名称,其余的服务器被忽略。请帮助修复代码:
set serverlist=%serverlist%
for /f "tokens=1 delims= " %%a in ("%serverlist%") do (
set server=%%a
echo !server!
%服务器列表% = VHS001开发、VHS002用户验收测试、VHS003生产
前面的代码以%serverlist%的形式返回输出。
现在,我将其作为输入传递,以单独检索服务器名。
1条答案
按热度按时间dohp0rv51#
你需要将你的列表拆分两次(因为它实际上是一个列表的列表)
输出:
%%a
是列表元素("子列表"),%%b
是您的服务器名,%%c
是您的环境(您可以忽略它-以防以后需要它)外部的
for
将列表拆分为"server environment"
元素(包括引号-因为空格,它们很关键),这是内部for /f
循环进一步拆分元素的分隔符。在调试行中,你可以看到三个"元素列表"。空格不重要,它们被内部的
for /f
循环删除了。