中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-06 21:53
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何读出IP最后一位数值。 查看 767 回复 4
楼 主 如何读出IP最后一位数值。 发表于 2007-12-16 12:04 ·  中国 广东 中山 联通
新手上路
积分 6
发帖 2
注册 2007-11-21 22:11
18年会员
UID 103368
性别 男
状态 离线
我现在知道IP地址的情况下,根据IP的最后一位数改计算机名。
可我不知道如何把IP的最后一位读出来。

比如:192.168.1.25
怎么样才能把25读出来?
而且还要能够有一定的通用性,当这个IP变成这样的话,10.2.5.25
又是否通得过。
我想了好久都没想到好的方法。
小弟第一次发言,请各路大哥帮忙出手相助。
2 发表于 2007-12-16 12:49 ·  中国 广东 清远 联通
高级用户
★★
积分 846
发帖 247
注册 2006-10-27 12:03
19年会员
UID 68504
性别 男
来自 湖南==》广东
状态 离线
方法太多,举三种有关for应用的吧
一、最基本的for /F

@echo off
set str=192.168.1.25
for /f "delims=. tokens=4" %%i in ("%str%") do echo %%i
pause>nul


二、

@echo off
set str=192.168.1.25
set str=%str:.= %
for %%i in (%str%) do set res=%%i
echo %res%

pause>nul


三、第三中方法:

@echo off
set str=192.168.1.25
for /l %%i in (1 1 3) do call set str=%%str:*.=%%
echo %str%

pause>nul


当然方法还有很多,还可以不用for循环的,其它的例子就不举了
3 发表于 2007-12-16 16:14 ·  中国 江苏 苏州 吴江区 电信
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
@echo off&setlocal enabledelayedexpansion
for /f "tokens=1,2 delims=:" %%i in ('ipconfig^|find "IP Address"') do (
set a=%%j
echo !a:~-3!
)
pause
4 发表于 2007-12-16 23:26 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
@echo off
set str=192.168.1.100
for %%a in (%str%) do set str=%%~xa
echo %str:.=%
pause
5 发表于 2007-12-21 00:34 ·  中国 湖南 株洲 荷塘区 电信
初级用户
积分 71
发帖 34
注册 2007-12-20 23:57
18年会员
UID 106311
性别 男
状态 离线
顶你滴肺!
论坛跳转: