找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
楼主: ditto

[文本处理] 批处理如何截取ip地址值的前2位?

[复制链接]
发表于 2014-8-28 16:34:06 | 显示全部楼层
本帖最后由 花落谁葬 于 2014-8-28 16:41 编辑

回复 10# CrLf

思路巧妙,简短的代码丰富的技巧……厉害!
发表于 2014-8-28 17:33:19 | 显示全部楼层
本帖最后由 523066680 于 2014-8-28 17:36 编辑

  1. @echo off
  2. set str=192.168.10.255
  3. set b=%str:*.=%
  4. call echo %%str:.%b:*.=%=%%
  5. pause
复制代码

评分

参与人数 2技术 +2 收起 理由
terse + 1 虽有出错几率,但娱乐性更强,赞了。
CrLf + 1 比 6 楼更直接

查看全部评分

发表于 2014-8-28 17:40:32 | 显示全部楼层
接着玩
  1. @echo off
  2. set ip=192.168.1.1
  3. for %%a in (%ip%) do for %%b in (%%~na) do echo %%~na
  4. pause
复制代码
发表于 2014-8-28 19:14:00 | 显示全部楼层
回复  Linuxer 分两部分解释下:
1、(set b=)
设置 %b% 为空
2、(set a=%ip:.=)&(if not defined b set  ...
CrLf 发表于 2014-8-28 16:16

这……好复杂啊,病毒的感觉。
发表于 2014-8-28 20:42:59 | 显示全部楼层
发表于 2014-8-28 21:54:51 | 显示全部楼层
回复 20# 523066680
想到可以位运算
  1. set a=192.168.1.2
  2. set /a "x=(((%a:.=)<<8|%,p=x>>24&255,q=x>>16&255"
  3. echo %p%.%q%
  4. pause
复制代码

评分

参与人数 3技术 +3 收起 理由
terse + 1 玩疯了
CrLf + 1
523066680 + 1 IP已经被你们玩坏了……

查看全部评分

发表于 2014-8-29 03:47:09 | 显示全部楼层
回复 21# neorobin


思路巧妙!之前也想过位运算,但以为无法兼容第一节大于 127 的 ip,忘了位运算是不分正负数的
不过有点绕了,还可以再直接点:
  1. set a=192.168.1.1
  2. set /a "a=%ip:.=,b=c,c=d,d=%"
  3. echo %a%.%b%
  4. pause
复制代码

评分

参与人数 2技术 +2 收起 理由
terse + 1 你真偏
neorobin + 1 500!!

查看全部评分

发表于 2014-8-29 08:38:19 | 显示全部楼层
回复 22# CrLf

想不出比 b=c,c=d,d= 这样变量接力更有趣的了

还是位运算,短了点,纯属娱乐
  1. set a=192.168.1.2
  2. set /a "p=%a:.=,q=q<<8|%,q>>=16"
  3. echo %p%.%q%
  4. rem 等效的四则运算
  5. set /a "p=%a:.=,q=q*256+%,q/=65536"
  6. echo %p%.%q%
复制代码
发表于 2014-8-29 11:19:35 | 显示全部楼层
用 /A 的话 再短点
  1. set "a=192.168.1.2"
  2. set /ab=a,p=%a:*.=%
  3. echo %b% %p%
复制代码

评分

参与人数 2技术 +2 收起 理由
plp626 + 1 bat技术娱乐, 致精致简,
CrLf + 1 学到了!

查看全部评分

发表于 2014-8-29 15:27:23 | 显示全部楼层
回复 24# terse


赞~
试过这种办法,但没想到提示“运算符不存在。”的时候其实已经赋值了,学习了!
发表于 2014-8-30 10:57:30 | 显示全部楼层
各位大神好
我是来膜拜的!!!
发表于 2014-9-11 23:31:49 | 显示全部楼层
xuexiliaoxiexie!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 04:34 , Processed in 0.028251 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表