首页 > 编程 > BAT > 正文

Ghost安装Win7/XP后自动恢复IP的批处理代码(ip备份恢复)

2020-06-09 14:02:03
字体:
来源:转载
供稿:网友

今天维护人员找的我说,最近要推Win7了,暂时桌面云没推广,还是使用手动安装Win7的方式。所以,需要我帮忙写一个脚本,大概功能就是在Ghost Win7之前先导出XP的IP信息,在Ghost完成之后,自动读取这个IP信息用于恢复IP设置。
Ghost安装Win7/XP后自动恢复IP的批处理

之前其实写过一个XP的,这次是Win7的,其实大同小异了,花了近半小时测试成功了,现在来记录一下。
懒得去折腾兼容方法,就写了2个导出IP的脚本和一个IP恢复脚本,用于Ghost远程安装Win7后自动恢复IP设置的。(繁体环境)


1、导出WinXP系统IP信息:

@echo off&setlocal enabledelayedexpansion title WindowsXP IP信息导出工具(配合恢复脚本所用) echo IP信息导出中... for /f "tokens=1,2 delims=:" %%i in ('ipconfig') do (  echo %%i | find /i "IP Address">nul && echo IP:%%j>D:/ip.txt  echo %%i | find /i "Subnet Mask">nul && echo MK:%%j>>D:/ip.txt  if "!GW!" equ "1" call :end  echo %%i | find /i "Default Gateway">nul && echo GW:%%j>>D:/ip.txt && set GW=1 )  :end echo= echo 导出完毕.任意键检查... pause>nul start "" d:/ip.txt exit

2、导出Win7系统IP信息

@echo off&setlocal enabledelayedexpansion title Windows 7 IP信息导出工具(配合IP恢复脚本所用) echo IP信息导出中... for /f "tokens=1,2 delims=:" %%i in ('ipconfig') do (  echo %%i | find /i "IPv4 位址">nul && echo IP:%%j>D:/ip.txt  echo %%i | find /i "子网路遮罩">nul && echo MK:%%j>>D:/ip.txt  if "!GW!" equ "1" call :end  echo %%i | find /i "预设闸道">nul && echo GW:%%j>>D:/ip.txt && set GW=1 )  :end echo= echo 导出完毕.任意键检查... pause>nul start "" d:/ip.txt exit

Ps:测试过程中,发现win7 使用ipconfig命令,会有个IPv6的网关,导致出错,只好用了一个 if 跳出循环。
3、最后输出到D:/ip.txt的格式如下(太偷懒了,就三行,手动写入也很快!):

代码如下:
IP: 10.197.198.173
MK: 255.255.255.254
GW: 10.197.198.1

最后,通过下面这个脚本读取d:/IP.txt内容并恢复IP:

@echo off&setlocal enabledelayedexpansion title Ghost系统后的IP恢复工具 rem 判断文件是否存在 if not exist d:/ip.txt goto error  rem 从IP.txt读取信息,并设置变量 for /f "tokens=1,2 delims=: " %%a in (d:/ip.txt) do (  if /i "%%a"=="IP" set addr=%%b  if /i "%%a"=="MK" set mask=%%b  if /i "%%a"=="GW" set gateway=%%b )   rem 获取第一块网卡的名称,并设置IP,多块网卡将至设置第一块 for /f tokens^=1^,2^ delims^=^" %%j in ('netsh interface ip show config') do (          if "%%j"=="介面 " (      netsh interface ip set address name="%%k" source=static addr=!addr! mask=!mask! gateway=!gateway!       call :end                   )     if "%%j"=="接口 " (      netsh interface ip set address name="%%k" source=static addr=!addr! mask=!mask! gateway=!gateway!       call :end         )     )   :end echo 设置完毕,3S后自动退出! ping -n 3 127.1 >nul exit  :error cls echo 错误:D盘根目录未发现ip.txt文件!请手动设置IP,任意键退出... pause>nul exit            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表