标题: [网络连接] 批处理怎样获取本地IP地址并赋值? [打印本页]
作者: robinsnelson 时间: 2010-11-22 22:35 标题: 批处理怎样获取本地IP地址并赋值?
- for /f "tokens=14 delims=: " %%i in ('ipconfig') do if %%i neq . echo %%i >>a.txt
- set /p IPAddress=<a.txt
复制代码
这是我自己写的 不过要导出文件 感觉很麻烦
作者: TX_kakashi 时间: 2010-11-23 00:59
lz的代码似乎每次都是获取的subnet mask而非ip地址,故略作了修改.- @echo off&setlocal enabledelayedexpansion
- for /f "delims=: tokens=2" %%a in ('ipconfig ^| find /i "IP Address"') do (
- set "temp=%%~a"
- set "ip_addr=!temp: =!
- )
- echo %ip_addr%
- pause
复制代码
作者: robinsnelson 时间: 2010-11-23 09:32 标题: 回复 2楼 的帖子
感谢你的回复。我写的代码在本机是执行通过的,导出到a.txt的信息的第一行是ip地址 第二行是子网掩码,赋值的时候只把ip给赋值了。
对于你的代码,应该是只针对ipv4有效果的。对于ipv6运行可能会出错。刚才执行的结果是显示了ipv6地址的一部分
作者: robinsnelson 时间: 2010-11-23 10:09
参考二楼的 我又修改了一下- @echo off
- @color 4e
- mode con: cols=82 lines=24
- echo 获取本机IP 并赋值给IPAddress
- echo.
- echo 正在执行...请稍候
- setlocal EnableDelayedExpansion
- if exist a.txt del a.txt
- :start
- for /f "delims=*" %%i in ('ipconfig ^| find "IP Address"') do (set fir=%%i
- echo !fir:~44!>>a.txt
- )
- set /p IPAddress=<a.txt
- echo IPAddress=====%IPAddress%
- del a.txt
- pause
复制代码
但是还是导出文件了 。。。。
作者: TX_kakashi 时间: 2010-11-23 10:30
这样吧,lz你把ipconfig | find "IP Address"的返回结果保存在文本文档里发上来我帮你看看?
作者: robinsnelson 时间: 2010-11-23 11:30 标题: 回复 5楼 的帖子
- IP Address. . . . . . . . . . . . : 222.25.142.37
-
- IP Address. . . . . . . . . . . . : 2001:250:1006:6142:91d:3862:dea4:3fd4
-
- IP Address. . . . . . . . . . . . : 2001:250:1006:6142:223:8bff:fe62:ecf1
-
- IP Address. . . . . . . . . . . . : fe80::223:8bff:fe62:ecf1%4
-
- IP Address. . . . . . . . . . . . : fe80::ffff:ffff:fffd%5
-
- IP Address. . . . . . . . . . . . : fe80::5efe:222.25.142.37%2
复制代码
[ 本帖最后由 robinsnelson 于 2010-11-23 11:31 编辑 ]
作者: TX_kakashi 时间: 2010-11-23 14:33
额,比我所想的要多一点,你是不是用了-all这个参数了?
不是太清楚应该返回的是哪个地址,最后的那个?
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |