![编写一个 .bat 文件,将批处理命令输出的某一部分选入批处理文件变量中](https://linux22.com/image/1408429/%E7%BC%96%E5%86%99%E4%B8%80%E4%B8%AA%20.bat%20%E6%96%87%E4%BB%B6%EF%BC%8C%E5%B0%86%E6%89%B9%E5%A4%84%E7%90%86%E5%91%BD%E4%BB%A4%E8%BE%93%E5%87%BA%E7%9A%84%E6%9F%90%E4%B8%80%E9%83%A8%E5%88%86%E9%80%89%E5%85%A5%E6%89%B9%E5%A4%84%E7%90%86%E6%96%87%E4%BB%B6%E5%8F%98%E9%87%8F%E4%B8%AD.png)
如果我在 Windows 7 系统上运行以下命令(其中 cable 是我的网络适配器的名称)
netsh interface ip show ipaddresses cable
我得到以下结果:
Address 10.17.179.17 Parameters
---------------------------------------------------------
Interface Luid : Cable
Scope Id : 0.0
Valid Lifetime : 22h46m12s
Preferred Lifetime : 22h46m12s
DAD State : Deprecated
Address Type : Dhcp
Skip as Source : false
对于批处理文件的这一部分,我只关心将 IP 地址(本例中为 10.17.179.17)放入变量中以供以后使用。IP 地址每天都会变化,所以我需要一个变量。
因此我希望得到以下结果:
@SET IPaddyVariableName=10.17.179.17
@SET IPaddyVariableName= <some batch file code I need help with as 10.17.179.17 is hardcoded>
请帮我将10.17.179.17
(显然会改变)放入变量中?一旦将其放入变量中,我就可以对其进行排序。谢谢大家!
答案1
我的连接名为本地连接...
for /f "tokens=2 delims= " %%a in ('netsh interface ip show ipaddresses "Local Area Connection" ^| findstr /r "Address[\s]*[^\s]*[\s]*Parameters"') do @set IPaddyVariableName=%%a
echo.
echo %IPaddyVariableName%
echo.