微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Windows批处理脚本中使用循环variables作为新variables的一部分

我试图根据其循环variables值分配一个variables,以便在循环结束时,我可以在一行中回显每个结果。 一般的命令是查询多个服务器的nslookup。 我抓取名称结果的开头(直到第一个点),显示基于5秒延迟的结果。 我留下了第二个版本的命令,我也尝试过,但rem'ed。 我无法让目标填充和回显。

setlocal enabledelayedexpansion For %%s IN (111.111.0.2,111.111.0.3,111.111.9.2,111.111.9.3) do ( for /L %%l IN (1,1,5) DO ( set Target=%e%%l.testedge.test.tld% for /f "tokens=2 delims=:." %%G IN ('nslookup e%%l.testedge.test.tld %%s ^|find "Name:"') do set %result%%l%=%%G REM set Result%%l=%for /f "tokens=2 delims=:." %%G IN ('nslookup e%%l.testedge.test.tld %%s ^|find "Name:"') do echo %%G% REM for /f "tokens=2 delims=:." %%G IN ('nslookup e%%l.testedge.test.tld %%s ^|find "Name:"') do set !Result%%1!=%%G ping 1.1.1.1 -n 1 -w 5000 > nul ) echo %%s,%Target%,%result1%,%result2%,%result3%,%result4%,%result5% )

nslookup结果看起来像

Name: e1.testedge.test.tld Name: user-data.e1.testedge.test.tld Name: user-data.e1.testedge.test.tld

所以for循环抓取e1,用户数据和用户数据。 我需要将它们分配给一个持久variables,以便在循环结束时进行回显。 我打算附加到一个csv,所以我们可以以电子表格的forms打开(通过20个服务器查找超过70个地址)进行审查。 我想输出是像

Nameserver Target 1st 2nd 3rd 4th 5th 111.111.0.2,e1.testedge.test.tld,e1,user-data,user-data 111.111.0.2,e2.testedge.test.tld,e2,e3.testedge.test.tld,e3,e4.testedge.test.tld,e4,user-data

覆盖Windows环境variables值?

如何访问您在Bash中采购的文件的基本文件名?

如何在Windowsbatch file中使用setx命令

从Windows获得c ++的系统环境

%SystemRoot%似乎打破PATH(Windows 7)

为什么%appdata%和其他variables在窗口的gui中不可见

当命令有空格时,将命令输出检索到variables

windows oneliner在环境variables中设置命令输出

JRE_HOMEvariables缺lesstomcat(win7)

我可以在batch file中使用FIND命令使用variables作为searchstring吗?

我想这是你正在尝试的。

@echo off setlocal enableextensions enabledelayedexpansion For %%s IN (111.111.0.2,5) DO ( set "Target=e%%l.testedge.test.tld" for /f "tokens=2 delims=:." %%G IN ('nslookup !Target! %%s ^|find "Name:"') do set "Result%%l=%%G" ) echo %%s,!Target!,!Result1!,!Result2!,!Result3!,!Result4!,!Result5! )

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐