在批处理脚本中使用命令行输出

Posted

技术标签:

【中文标题】在批处理脚本中使用命令行输出【英文标题】:Using command line output in batch script 【发布时间】:2018-11-07 22:12:27 【问题描述】:

我对使用批处理脚本相当陌生 - 本质上,我想要一种能够解析机器上的活动目录域名,将其存储在文本文件中然后 ping 该地址的方法?我可能会在很长一段时间内这样做,因为这样做可能会容易得多!但我目前的逻辑是将 nslookup 导出到一个 txt 文件,然后 ping nslookup.txt 的第一行(在它显示“地址:”或类似内容的前 9 个字符之后,然后将其存储在一个文本文件中!

如果我的事情过于复杂,请告诉我!

康纳

【问题讨论】:

【参考方案1】:

使用for /f 将所需的值放入变量中:

set "adr="
for /f "tokens=2 delims=:" %%A in ('echo exit^|nslookup') do if not defined adr set "adr=%%A"
ping %adr% > file.txt

注意:%adr% 变量的值有两个前导空格,但它们不会干扰ping 命令。如果要删除它们,请使用set "adr=%adr: =%"set "adr=%adr:~2%"

【讨论】:

以上是关于在批处理脚本中使用命令行输出的主要内容,如果未能解决你的问题,请参考以下文章

Windows 批处理脚本 - 用于使用命令输出

使用 FOR /F 'MSYS' 命令的 Cmd.exe 批处理脚本颜色输出

批处理脚本上的数组

如何使用普通变量传递系统变量以在命令行批处理脚本中调用java程序

shell脚本之awk工具的使用

在批处理脚本中使用sqlcmd来运行带有输出文件的多个脚本