Batch file 如何将ping命令的输出传递给批处理文件中的变量?

Batch file 如何将ping命令的输出传递给批处理文件中的变量?,batch-file,Batch File,特别是在这里,我试图将ping命令的输出传递给变量,该命令通过管道传递给Find“Reply”。从这里开始,我想使用这个变量,对照IP列表检查IP,以确定IP所在的子网。我在想,我可以使用FOR的一些迭代,然后只分离IP,然后使用它来对照我的列表进行检查 我希望我可以使用FOR和ping-4-n1%WHATTOPING%| Find“Reply”作为我的参数,但我认为这行不通 如果我的问题需要澄清,请告诉我!谢谢大家! 到目前为止,我的代码是: @echo off CLS :start SET

特别是在这里,我试图将ping命令的输出传递给变量,该命令通过管道传递给Find“Reply”。从这里开始,我想使用这个变量,对照IP列表检查IP,以确定IP所在的子网。我在想,我可以使用FOR的一些迭代,然后只分离IP,然后使用它来对照我的列表进行检查

我希望我可以使用FOR和ping-4-n1%WHATTOPING%| Find“Reply”作为我的参数,但我认为这行不通

如果我的问题需要澄清,请告诉我!谢谢大家!

到目前为止,我的代码是:

@echo off
CLS
:start
SET /p WHATTOPING= What would you like to ping?
ping -4 -n  1 %WHATTOPING% | Find "Reply"

for /f "delims=" %%A in ('ping -4 -n  1 %WHATTOPING%') do set "var=%%A"
echo %var%


PAUSE 
CLS
goto start
应该适用于您,但是如果没有使用
ping
生成的数据的(n模糊)样本以及您希望从该数据中提取的值,那么它可能只是一个提示


关键点是,您需要使用插入符号退出
|
,以便告诉
cmd
管道是单引号命令的一部分,而不是解释该命令结果的
for

Reply
依赖于语言(在德国Windows中,它将是
Antwort
)(此外,它在同一网络中不可靠:您可以获得类似
的回复:无法到达目的地。

对于“国际”解决方案,从标题行获取地址(它包含在
[]
中):

for /f "delims=" %%A in ('ping -4 -n  1 %WHATTOPING% ^| Find "Reply"') do set "var=%%A"
for /f "tokens=2 delims=[]" %%a in ('ping -4 -n 1 www.google.de ^|find "["') do set "IP=%%a"
echo %IP%