闲耘.博客

巨人归来。

这个shell可以辅助你:
1. 来回切换预设好的两个(你也可以改为更多个)网络设置;
2. 自动获取网络设置;
3. 手动设置网络环境(一般临时用一下);
4. 启用/禁用网卡;
5. 查看网络设置。

代码保存为*.bat/*.cmd均可,双击执行。
注:因为Win2003的命令行代码页默认不支持中文(可以通过改注册表修正)这里把网卡名称改成了Lineate,如果你的命令行支持中文(也可以通过修改该批处理文件的快捷方式属性->选项->当前代码页为936),把Lineate改成你的网卡名称(如“本地连接”)即可。

参考:http://windowsitpro.com/articles/index.cfm?articleid=41111&cpage=1#feedbackAnchor

@echo off  

title Switch Network Settingset card=Lineate  

set house_ip=192.168.2.98
set house_mask=255.255.255.0
set house_gway=192.168.2.1
set house_dns0=127.0.0.1
set house_dns1=202.96.134.133  

set office_ip=192.168.1.113
set office_mask=255.255.255.0
set office_gway=192.168.1.1
set office_dns0=192.168.1.1
set office_dns1=202.101.172.35  

:Lab_choice
cls
echo Choice the Network type (for [%card%]):
echo -------------------------------------------------------------------------
echo *  [1] : [ House ] Network Setting:%house_ip% %house_mask% %house_gway%
echo *  [2] : [ Office ] Network Setting:%office_ip% %office_mask% %office_gway%
echo *  [3] : Set Address by Youself.
echo *  [4] : Auto.
echo *
echo *  [5] : Disable Interface.
echo *  [6] : Enable Interface.
echo *  [7] : Change Network Card Name (Current : %card%)
echo *  [9] : Show Status.
echo *
echo *  [?] : Help.
echo *  [0] : Exit.
echo -------------------------------------------------------------------------  

set /p type=Choice:
if %type%==0 exit
if %type%==exit exit
if %type%==quit exit
if %type%==1 goto Lab_house
if %type%==2 goto Lab_office
if %type%==3 goto Lab_userset
if %type%==4 goto Lab_set_dhcp
if %type%==5 goto Lab_disable
if %type%==6 goto Lab_enable
if %type%==7 goto Lab_changeCard
if %type%==9 goto done
if %type%==? goto Lab_help
goto Lab_choice  

:Lab_changeCard
cls
echo All Network Card Config Infomation:
echo -------------------------------------------------------------------------
netsh interface ip show config
echo -------------------------------------------------------------------------
set /p card=Input Network Card Name:
goto Lab_choice
rem ==========================================================================  

:Lab_userset
cls
echo Input Network
echo -------------------------------------------------------------------------
set /p ip=IP Address:
set /p mask=Subnet Mask:
set /p gway=Default Gateway:
set /p dns0=Default DNS Servers:
set /p dns1=Spare DNS Servers:
echo -------------------------------------------------------------------------
echo  [y/Y] : Update network setting immediately.
echo  [n/N] : Cancel and goto main menu.
set /p confirm=Config the Network Setting(y/n):
if %confirm%==y goto Lab_set_static
goto Lab_choice  

:Lab_house
set ip=%house_ip%
set mask=%house_mask%
set gway=%house_gway%
set dns0=%house_dns0%
set dns1=%house_dns1%
goto Lab_set_static  

:Label_office
set ip=%office_ip%
set mask=%office_mask%
set gway=%office_gway%
set dns0=%office_dns0%
set dns1=%office_dns1%
goto Lab_set_static  

rem ==========================================================================
:Lab_set_static
echo Reset Network Setting...
netsh interface ip reset "%card%"
echo Setting IP Address and Subnet Mask...
netsh interface ip set address "%card%" source=static addr=%ip% mask=%mask%
echo Setting Default Gateway...
netsh interface ip set address "%card%" gateway=%gway% gwmetric=1
echo Setting Default DNS Servers...
netsh interface ip set dns "%card%" static %dns0% primary
echo Adding Spare DNS Servers...
netsh interface ip add dns "%card%" addr=%dns1% index=2
goto done  

rem ==========================================================================
:Lab_set_dhcp
echo Auto get IP Address...
netsh interface ip set address "%card%" source=dhcp
echo Auto get DNS Servers...
netsh interface ip set dns "%card%" source=dhcp
goto done  

:Lab_disable
netsh int set interface name="%card%" admin=disabled
goto done
:Lab_enable
netsh int set interface name="%card%" admin=enabled
goto done  

rem ==========================================================================
:done
echo Current Network Setting:  

echo -------------------------------------------------------------------------
netsh interface ip show config "%card%"
echo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ipconfig /all
pause
goto Lab_choice  

:Lab_help
cls
echo Help Infomation - Advance Usage
echo -------------------------------------------------------------------------
echo ? get help.
echo.
pause
goto Lab_choice

Route
控制网络路由表。该命令只有在安装了 TCP/IP 协议后才可以使用。

route [-f] [-p] [command [destination] [mask subnetmask] [gateway] [metric costmetric]]

参数

-f
清除所有网关入口的路由表。如果该参数与某个命令组合使用,路由表将在运行命令前清除。

-p
该参数与 add 命令一起使用时,将使路由在系统引导程序之间持久存在。默认情况下,系统重新启动时不保留路由。与 print 命令一起使用时,显示已注册的持久路由列表。忽略其他所有总是影响相应持久路由的命令。

command
指定下列的一个命令。

命令 目的
print 打印路由
add 添加路由
delete 删除路由
change 更改现存路由

destination
指定发送 command 的计算机。

mask subnetmask
指定与该路由条目关联的子网掩码。如果没有指定,将使用 255.255.255.255

gateway
指定网关。

名为 Networks 的网络数据库文件和名为 Hosts 的计算机名数据库文件中均引用全部 destination 或 gateway 使用的符号名称。如果命令是 print 或 delete,目标和网关还可以使用通配符,也可以省略网关参数。

metric costmetric
指派整数跃点数(从 1 到 9999)在计算最快速、最可靠和(或)最便宜的路由时使用。

route命令范例

route print
要显示 IP 路由表中以 10. 开始的路由,请键入:
route print 10.*

要添加默认网关地址为 192.168.12.1 的默认路由,请键入:
route add 0.0.0.0 mask 0.0.0.0 192.168.12.1

要添加目标为 10.41.0.0,子网掩码为 255.255.0.0,下一个跃点地址为 10.27.0.1 的路由,请键入:
route add 10.41.0.0 mask 255.255.0.0 10.27.0.1

要添加目标为 10.41.0.0,子网掩码为 255.255.0.0,下一个跃点地址为 10.27.0.1 的永久路由,请键入:
route -p add 10.41.0.0 mask 255.255.0.0 10.27.0.1

要添加目标为 10.41.0.0,子网掩码为 255.255.0.0,下一个跃点地址为 10.27.0.1,跃点数为 7 的路由,请键入:
route add 10.41.0.0 mask 255.255.0.0 10.27.0.1 metric 7

要添加目标为 10.41.0.0,子网掩码为 255.255.0.0,下一个跃点地址为 10.27.0.1,接口索引为 0×3 的路由,请键入:
route add 10.41.0.0 mask 255.255.0.0 10.27.0.1 if 0×3

要删除目标为 10.41.0.0,子网掩码为 255.255.0.0 的路由,请键入:
route delete 10.41.0.0 mask 255.255.0.0

要删除 IP 路由表中以 10. 开始的所有路由,请键入:
route delete 10.*

要将目标为 10.41.0.0,子网掩码为 255.255.0.0 的路由的下一个跃点地址由 10.27.0.1 更改为 10.27.0.25,请键入:
route change 10.41.0.0 mask 255.255.0.0 10.27.0.25

利用命令shell的力量。Use the Power of Command Shells.

学习一种文本操纵语言。Learn a Text Manipulation Language.

不要使用手工流程。Don’t Use Manual Procedures.

from《程序员修炼之道》The Pragmatic Programmer

Windows磁盘碎片整理批处理,传说是WinXP,Win2K,Win2003等NT系统才支持。

将下面代码保存为disk.bat,双击运行即可。

defrag.exe c: -f -v >”d:\defrag_report_c.txt”
defrag.exe d: -f -v >”d:\defrag_report_d.txt”

其中 c:,d:等表示你要整理的驱动盘符,详细说明可以Google搜索关键字” windows 碎片整理 命令行“,并且在我的Google搜索历史中2007年6月6日的标星记录里都是不错的链接。

将Windows磁盘从FAT32转换成NTFS格式,不会格式化磁盘,保留数据(不过最保险的还是备份先)。由于输入了如下命令后,需要立即手动输入对应磁盘卷标名(即你为磁盘驱动器命的名字,打开”我的电脑”即可看到)才会执行转换,所以几乎没有办法写成批处理,不过还好转换工作不是需要特别长的时间,几十秒到几分钟吧。

CONVERT D: /FS:NTFS

关于Google搜索同上,关键字”fat32 转 ntfs 命令“。

前文”Resin服务重新启动控制“中用的的重启resin服务的方法,有一个问题就是:当系统本身有类似resin.exe等以resin命名的可执行文件时,系统环境变量设置的不同,会造成不同的影响。

例如MySQL就有这个问题:在%MySQL_HOME%\bin目录中,本身就有mysql.exe文件, 在安装MySQL时,可以选择是否将MySQL安装目录放进系统环境变量中,但是推荐放进去,因为我们经常需要执行MySql本身的mysql.exe,以便于在命令行下操作MySql。

在Windows Server 2003系统命令行下输入
> start /?
可以查看start命令的用法,不带参数时默认启动一个新的命令行窗口。而直接在运行里输入start则提示”Windows找不到文件’start’,…”说明Windows Server 2003和其他Win系统不同, 没有start.exe文件,start命令是集成的 (搜索结果也表明如此)。

为了避免命令重复造成的问题,创建启动服务的批处理文件保存为startup.bat,如下:

startup.bat

@echo off
if “%1″==”" goto help

net start %1
goto end

:help
echo [Usage] startup {service_name}
goto end
:end

stop.bat

@echo off
if “%1″==”" goto help

net stop %1
goto end

:help
echo [Usage] stop {service_name}
goto end

:end

restart.bat
 

@echo off
if “%1″==”" goto helpnet stop %1
net start %1
goto end

:help
echo [Usage] restart {service_name}
goto end

:end

把如上三个文件所在目录添加到系统变量Path中。现在我们可以使用上面的通用批处理进行服务的启动,停止,重启操作了。
> startup resin // 启动Resin Web Server.
> stop resin // 停止Resin Web Server.
> restart mysql // 重启MySQL服务,注:安装MySql时可以设置服务名。

由于已经将Resin安装注册到系统服务中,需要重新启动服务时,要到服务中选择Resin Web Server,点击”重新启动”,或者运行”net stop resin”和”net start resin”命令。下面是我使用的方法:把下面的代码复制到文本文件中,保存为 resin.bat,并将该文件所在目录添加到系统变量Path中。

@echo off
if “%1″==”start” goto start
if “%1″==”stop” goto stop
goto restart

:start
net start resin
goto end

:stop
net stop resin
goto end

:restart
net stop resin
net start resin

:end

现在,只需要运行”resin”或者”resin restart”就可以重新启动Resin Web Server服务了。另外:
resin stop : 停止Resin Web Server服务。
resin start : 启动Resin Web Server服务。

临时学的批处理知识,知识浅薄。请朋友多为指正。

今天发现一个好玩的网站,思路就是通过命令行方式上网(http://www.cmdgo.com/),很好玩,有一个问题就是需要弹出窗口,第一次我是在RSS阅读器里连接过去,楞是没明白怎么个命令行上网法。

Link : http://blog.chinaitlab.com/user1/1100204/archives/2007/132477.html

微软的Windows家族从Windows NT开始跨入了网络**作系统的市场,到现在的Windows 2000可以说网络功能在逐渐的完善,在这个成长过程中Windows融入了很多其他网络**作系统的功能,可以说是借鉴而来的,逐渐形成了一套功能完善的网络**作系统,这也是令SUN等各大公司所感觉到不服的原因,觉得不是微软完全自给研发的东西。不过Windows2000的功能确实是很强大的,它几乎可以象Unix和Linux一样在命令行下做很多的工作。 下面我们看一下Windows上一个可以在命令行下更改ip地址的命令,看过这个命令后大家可能会觉得这个命令很象Unix和Linux的命令,更象Cisco的路由器命令。下面是我在计算机上实际**作的回显,我会加上一些注释:

C:\>ipconfig (首先用ipconfig这个命令看一下更改之前的ip地址)
Windows 2000 IP Configuration
Ethernet adapter 本地连接:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 192.168.0.250 (本地连接更改之前的ip)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.0.1

PPP adapter 拨号连接:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 211.149.128.147
Subnet Mask . . . . . . . . . . . : 255.255.255.255
Default Gateway . . . . . . . . . : 211.149.128.147

C:\>netsh (然后执行netsh这个命令)
netsh>interface (netsh命令的子命令)
interface>ip (interface命令的子命令)
interface ip>set (interface ip命令的子命令)

下列指令有效:

此上下文中的命令:
set address - 设置指定的接口的 IP 地址或默认网关。
set dns - 设置 DNS 服务器模式和地址。
set wins - 设置 WINS 服务器模式和地址。

interface ip>set address “本地连接” static 192.168.0.2 255.255.255.0 192.168.0.1
1 (设置ip地址)
确定。
(注释:上面一段象不象Cisco的命令。)

interface ip>exit

C:\>ipconfig (更改后再用ipconfig命令看一下ip地址,确认一下是否更改成功)
Windows 2000 IP Configuration
Ethernet adapter 本地连接:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 192.168.0.2 (更改后的ip说明成功了)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.0.1
 

PPP adapter 拨号连接:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 211.149.128.147
Subnet Mask . . . . . . . . . . . : 255.255.255.255
Default Gateway . . . . . . . . . : 211.149.128.147
C:\>

netsh这个命令还有好多强大的功能 如下:

C:\>netsh
netsh>?

下列指令有效:

此上下文中的命令:
.. - 移到上一层上下文级。
? - 显示命令列表。
aaaa - 更改到 `aaaa’ 上下文。
abort - 丢弃在脱机模式下所做的更改。
add - 将一个配置项添加到项目列表中。
alias - 添加一个别名
bye - 退出程序。
commit - 提交在脱机模式中所做的更改。
delete - 在项目列表上删除一个配置项目。
dhcp - 更改到 `dhcp’ 上下文。
dump - 显示一个配置脚本。
exec - 运行一个脚本文件。
exit - 退出程序。
help - 显示命令列表。
interface - 更改到 `interface’ 上下文。
offline - 将当前模式设置成脱机。
online - 将当前模式设置成联机。
popd - 从堆栈上打开一个上下文。
pushd - 将当前上下文放推入堆栈。
quit - 退出程序。
ras - 更改到 `ras’ 上下文。
routing - 更改到 `routing’ 上下文。
set - 更新配置设置。
show - 显示信息
unalias - 删除一个别名。
wins - 更改到 `wins’ 上下文。

下列的子上下文可用:

routing interface ras dhcp wins aaaa

大脚虎 发表于 2007-3-6 12:46:00