Tag Archives: 命令行

简单用批处理实现不同网段自动切换

在学校,自己拉了一根电信的网线,但是偶尔也需要享受一下教育网的飞速下载。所以,自己用路由器同时接入两个网络,并且利用下面这段代码来实现自动切换网络的功能。

核心代码是使用netsh函数来修改ip和dns配置。

  1. @echo off 
  2. ipconfig|find "192.168.137.100">nul&&goto :schoolnet&&goto :adsl 
  3. :adsl 
  4. netsh interface ip set address 本地连接 static 192.168.137.100 255.255.255.0 192.168.137.1 
  5. netsh interface ip set dns 本地连接 static 202.103.44.150 
  6.  
  7. CLS 
  8. echo "你现在是电信网了!" 
  9. goto :end 
  10. :schoolnet 
  11. netsh interface ip set address 本地连接 dhcp 
  12. netsh interface ip set dns 本地连接 dhcp 
  13. tasklist|find "DigitalChinaSupplicant">nul&& goto :last 
  14. explorer "D:Program FilesDigitalChinaDigitalChinaSupplicantDigitalChinaSupplicant.exe" 
  15. :last 
  16. CLS 
  17. echo "你现在是校园网了!" 
  18. :end 
  19. pause 

逐行来解释一下这段代码

@echo off //关闭输出,这样可以不要看到一些不需要的输出
ipconfig|find "192.168.137.100">nul&&goto :schoolnet&&goto :adsl
//ipconfig用来查看当前ip配置,其输出结果传递到find函数,在输出结果中查找192.168.137.100这个地址,这个是我电信时的ip地址,如果找到了,就用goto跳转到:schoolnet的位置,否则,就跳转到:adsl
:adsl  
netsh interface ip set address 本地连接 static 192.168.137.100 255.255.255.0 192.168.137.1
//通过netsh interface命令,修改本地连接的ip为192.168.137.100,子网掩码修改为255.255.255.0,网关修改为192.168.137.1
netsh interface ip set dns 本地连接 static 202.103.44.150
//利用netsh interface函数,修改dns为202.103.44.150,我没有使用备用dns

CLS   // 清屏
echo "你现在是电信网了!"   //输出提示
goto :end  //跳转到结束位置
:schoolnet
netsh interface ip set address 本地连接 dhcp
//校园网开启了dhcp,自动分配ip和dns的功能,所以,我就把本地连接的ip设置改为dhcp分配
netsh interface ip set dns 本地连接 dhcp
//同上,修改dns为dhcp分配
tasklist|find "DigitalChinaSupplicant">nul&& goto :last
//这里是检查我的校园网客户端是否启动
explorer "D:Program FilesDigitalChinaDigitalChinaSupplicantDigitalChinaSupplicant.exe"
//用explorer这个shell来启动客户端,如果不通过shell来运行,会由于客户端没有结束,导致这个cmd窗口不关闭的。
:last
CLS
echo "你现在是校园网了!" //输出提示
:end
pause //暂停一下,按任意键结束

需要注意的地方

由于是利用路由器来接入两个网段,因此,路由器的dhcp功能不能够开启。

这段代码的使用方法是,新建一个txt文档,然后把我提供的代码粘贴进去,保存,最后把这个文件的后缀修改为.bat。

在vista下,可能需要管理员权限来运行这段代码。

如果还有什么问题,可以留言,我会尽快给你回复的!

命令行解决VISTA和XP双系统/双引导问题,有技术含量啊

现在很多软件都能够解决这个问题,不过还是有技术含量一些比较好。这里介绍一下用命令行来解决mbr引导的问题。

安装好XP之后,发现VISTA进不去了,进入你的XP系统。
复制你安装VISTA系统的硬盘分区下的windowssystem32winload.exe文件到你安装XP系统的硬盘分区下的windowssystem32文件夹里。(前面这一步我觉得没有啥必要,大家可以自己试试看看有没有必要)放入VISTA安装光盘,关闭它自动运行窗口,打开—开始—运行,输入cmd回车,然后依次输入

  1. x:           //x表示你的光驱盘符   
  2. cd boot      //进入boot目录   
  3. bootsect /nt60 sys    //修复引导  

关闭所有窗口重启系统,重启系统后并没有双启动菜单,而是直接进入了VISTA系统了.
然后以管理员身份运行命令提示符 

  1. Bcdedi   
  2. Bcdedit /create {legacy} /d “Description”    //如提示指定项已经存在,不理它,其中“Description”是刚才复制后XP系统中winload.exe存放的路径,我的是e:windowssystem32winload.exe    
  3. Bcdedit /set {legacy} device boot  //我的XP在E盘 
  4. Bcdedit /set {legacy} path 
    tldr   
  5. Bcdedit /displayorder {legacy} /addlast  

重启电脑就可以看到双启动菜单了

另外命令

  1. Bcdedit /default {legacy}    //将XP作为默认启动系统{legacy}表示原系统如xp,{current}现系统vista   
  2. Bcdedit /set {legacy} description "*****"  //可将系统菜单名字改为****    
  3. bcdedit /displayorder  //设置启用菜单中各项的显示顺序,如:    
  4. bcdedit.exe /displayorder {legacy} {current}    
  5. 将首先显示Windows XP,然后再显示默认启动的系统如Windows Vista   
  6. bcdedit /timeout 15     //将默认的启动菜单显示时间30秒更改为15秒,当然,您可以将这个时间修改为任何您希望的数值   
  7. bcdedit   //查看当前引导情况  

最后修改完之后,我又用vista优化大师修改了一次,对照了一下,自己的修改还算是成功的