[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 2# CrLf


    他是想直接修改IP的。我理解是这样,先获取本机IP的最后一位,然后加100,组成新的IP,再修改成本机的IP。不过我想不出来咋写。
问题解决后,请在标题前面注明[已解决],并给回答者加分——化繁为简,提高工作效率!

TOP

本帖最后由 Linuxer 于 2014-9-18 15:31 编辑

回复 5# Batcher


   嗯,主要是前边截取字符,一时没想出怎么弄。
参考了下之前的帖子,写了一段,还请batcher帮我看看对不对,有没有哪里写的不好,我测试是可以用了。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=2 delims=:" %%i in ('ipconfig ^| findstr /i "IPv4"') do (
  4. set ip=%%i
  5. set ip_1=!ip:.= !
  6. call :ip_addr !ip_1!
  7. )
  8. goto :eof
  9. :ip_addr
  10. set /a ip_2=%4+100
  11. set ip_3=%1.%2.%3.!ip_2!
  12. netsh interface ip set address "本地连接" static %ip_3% 255.255.255.0
  13. pause
复制代码
call命令的调用方法参考了if_exist版主的思路:
http://www.bathome.net/redirect. ... 8&fromuid=67350
问题解决后,请在标题前面注明[已解决],并给回答者加分——化繁为简,提高工作效率!

TOP

回复 3# yyjeje


    你看下6楼代码能否实现你的要求。
问题解决后,请在标题前面注明[已解决],并给回答者加分——化繁为简,提高工作效率!

TOP

本帖最后由 Linuxer 于 2014-9-18 14:21 编辑

回复 8# Batcher


    我修改了,但是现在代码echo !ip_3!测试正常,但是后边又会多执行一次,不知道是怎么回事。。
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
问题解决后,请在标题前面注明[已解决],并给回答者加分——化繁为简,提高工作效率!

TOP

回复 10# Batcher


    啊,原来如此。。我在for后边加一个goto :eof退出这样就ok了。
另外,我在for里只执行set设置ip的命令,其他几句都搬到for外边,是不是和在for里边没区别?没什么影响的吧?我测试结果是一样的。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=2 delims=:" %%i in ('ipconfig ^| findstr /i "IPv4"') do (set ip=%%i)
  4. set ip_1=!ip:.= !
  5. call :ip_addr !ip_1!
  6. goto :eof
  7. :ip_addr
  8. set /a ip_2=%4+100
  9. set ip_3=%1.%2.%3.!ip_2!
  10. netsh interface ip set address "本地连接" static %ip_3% 255.255.255.0
  11. pause
复制代码
问题解决后,请在标题前面注明[已解决],并给回答者加分——化繁为简,提高工作效率!

TOP

回复 12# Batcher


    嗯,如果有线无线都开着,或者有虚拟机网卡,都会查出多个地址。还有什么命令可以更准确的或得IP呢?
看楼主的说明,应该基本都是一个ip的了。
问题解决后,请在标题前面注明[已解决],并给回答者加分——化繁为简,提高工作效率!

TOP

回复 13# yyjeje

win7识别的是“IPv4 地址“
XP里边是"ip address"

用下边的试试。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=2 delims=:" %%i in ('ipconfig ^| findstr /i "ip address"') do (set ip=%%i)
  4. set ip_1=!ip:.= !
  5. call :ip_addr !ip_1!
  6. goto :eof
  7. :ip_addr
  8. set /a ip_2=%4+100
  9. set ip_3=%1.%2.%3.!ip_2!
  10. netsh interface ip set address "本地连接" static %ip_3% 255.255.255.0
  11. pause
复制代码
1

评分人数

问题解决后,请在标题前面注明[已解决],并给回答者加分——化繁为简,提高工作效率!

TOP

返回列表