收藏本站 收藏本站
积木网首页 - 软件测试 - 常用手册 - 站长工具 - 技术社区
首页 > DOS命令 > 正文

首页 - PHP - 数据库 - 操作系统 - 游戏开发 - JS - Android - MySql - Redis - MongoDB - Win8 - Shell编程 - DOS命令 - jQuery - CSS样式 - Python - Perl

Access - Oracle - DB2 - SQLServer - MsSql2008 - MsSql2005 - Sqlite - PostgreSQL - node.js - extjs - JavaScript vbs - Powershell - Ruby

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

今天维护人员找的我说,最近要推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

这个脚本简、繁WinXP/7等系统都可以兼容设定IP,其实是修改自我以前写的Windows下获取网络连线实际名称,加强IP类设置脚本的兼容性中的脚本。

4、脚本用法:

1、封装Ghost系统镜像时,将设置IP的脚本加入启动项
2、Ghost安装系统之前先通过【导出脚本】或【手动的方法】在d盘建立ip.txt,写入如上三条信息
3、通过oneKey远程恢复Ghost系统镜像,等恢复完成之后,IP脚本自动恢复D盘设定好的IP,这时就可以远程连接电脑进行维护了,整个过程均不需要现场操作。

Windows下通过bat获取网络连线实际名称,加强IP类设置脚本的兼容性
其中比较难解决的问题就是获取网络连线的实际名称,大部分人使用的IP设置脚本都是将【本地连接】写死在代码中,可实际上并不是所有电脑都叫本地

script_tool_for_windows.bat Windows 环境下的 hosts 一键部署脚本
我们提供了一系列工具让您除了手动以复制/粘贴的方式部署和更新hosts之外,有一种方便、一键式的方式来应用我们的hosts。我们现有的工具可以在下列

用dos命令实现导入、导出windows计划任务详解
新手指南要把公司软件用的计划任务用命令行批处理的方式导入一个新的系统里,所有通过查资料,一个可以用来导出和导入的脚本。导出用法为:脚

本周排行

更新排行

强悍的草根IT技术社区,这里应该有您想要的! 友情链接:b2b电子商务
Copyright © 2010 Gimoo.Net. All Rights Rreserved  京ICP备05050695号