首页 > 解决方案 > 如何将 ping 命令的输出传递给批处理文件中的变量?

问题描述

具体来说,我试图将通过管道传输到 Find“Reply”的 ping 命令的输出传递给变量。从那里,我想获取该变量并根据 IP 列表检查 IP,以确定该 IP 所在的子网。我想我可以使用 FOR 的一些迭代然后只分离 IP,然后我可以从那里使用它来检查我的列表。

我希望我可以将 FOR 与ping -4 -n 1 %WHATTOPING% |一起使用 找到“回复”作为我的参数,但我认为这不会起作用。

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

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

@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

标签: batch-file

解决方案


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

应该对您有用,但如果没有您使用 生成的数据的(n 混淆)样本ping以及您希望从该数据中提取的值,它可能只是一个提示。

关键点是您需要用插入符号转义,以表明管道是单引号命令的一部分,而不是解释该命令结果的命令的一部分。|^cmdfor


推荐阅读