Board logo

标题: 继续调试网络设置脚本,各位帮忙排错。 [打印本页]

作者: sevenwang2000     时间: 2008-5-12 18:15    标题: 继续调试网络设置脚本,各位帮忙排错。

下面有错误的语句已经加重,此句只要加"gateway=192.168.0.254"就错。为什么?
-----------------------------------------------
:start
echo 1.重新配置
echo 2.自动获取网络配置
echo 3.退出配置
set /p select=请选择任意一选项继续:
if "%select%"=="1" goto select1
if "%select%"=="2" goto select2
if "%select%"=="3" goto select3
               goto nothing
:select1
   set /p %ip=请输入您的IP(格式为192.168.0.*):
   netsh interface ip set address name="本地连接" source=static addr=%ip% mask=255.255.255.0 gateway=192.168.0.254
   netsh interface ip set dns name= "本地连接" source= static addr= 218.2.135.1 primary
   goto end
:select2
   netsh interface ip set address name="本地连接" source=dhcp
   netsh interface ip set dns name="本地连接" source=dhcp
   goto end
:select3
   goto end
:nothing
   echo 你没有选择任何选项,程序将退出。
   goto end
:end
pause
作者: slore     时间: 2008-5-12 18:19
t /p ip=请输入您的IP(格式为192.168.0.*):
作者: sevenwang2000     时间: 2008-5-12 18:33
已经解决

[ Last edited by sevenwang2000 on 2008-5-12 at 09:37 PM ]
作者: cnLiou     时间: 2008-5-12 22:07    标题: 我写了一个.希望你能用得着.

我写了一个.希望你能用得着.

@Color 0A
@Title 网络配置工具 By Liou
@Pushd %CD%
@Prompt $G
@SETLOCAL ENABLEDELAYEDEXPANSION

@REM 网络名称配置, Network后面的数字是运行脚本时的第一个参数
@Set NetWork1=本地连接
@Set NetWork2=无线连接

@REM 网络参数配置, 查看脚本帮助时可以看到此配置。
@Set NetworkCfg0=自动获取配置
@Set NetworkCfg1=本地局域网 192.168.0.1
@Set NetworkCfg2=本地局域网 192.168.1.1
@Set NetworkCfg-c=ipconfig /all
@Set NetworkCfg-h=参数配置查看

@REM 各网络配置命令,用一行命令完成。
@Set NetworkCfgCall0=netsh interface ip set address name="NetworkName" source=dhcp
@Set NetworkCfgCall1=netsh interface ip set address name="NetworkName" static 192.168.0.1 255.255.255.0
@Set NetworkCfgCall2=netsh interface ip set address name="NetworkName" static 192.168.1.1 255.255.255.0
@Set NetworkCfgCall-c=Goto CheckCfg
@Set NetworkCfgCall-h=Goto ScriptUsage

@REM 单参数命令放在此前判断,判断如果网络配置参数为空,则默认设置本地连接,第一个参数即为网络配置参数。
@IF "%1"=="" (     
        @Goto CheckCfg
)
@IF "%2"=="" (
        @Set Network=%Network1%
        @Call Set NetworkCfg=%%NetworkCfg%1%%
        @IF NOT DEFINED NetworkCfg%1 Goto ParamError
        @Set NetworkCfgIndex=%1
        @Goto NetworkCfg
)

@Set Network=
@Set NetworkCfg=
@Set NetworkCfgIndex=%2

@Call Set Network=%%Network%1%%
@IF NOT DEFINED Network%1 Goto ParamError

@Call Set NetworkCfg=%%NetworkCfg%2%%
@IF NOT DEFINED NetworkCfg%2 Goto ParamError

@Goto NetworkCfg

:ParamError
@Echo 你执行的命令为IP %1 %2
@Echo.
@Echo 参数使用不正确.请使用IP /C 查看配置说明.
@Echo.
@Goto ScriptUsage

@REM ==========================LocalNet==========================
:NetworkCfg
@Echo 正在查看或修改 "%Network%" 的网络配置, 相关命令或配置为 "%NetworkCfg%" , 请稍候......
@Call Set NetworkCfgCall=%%NetworkCfgCall%NetworkCfgIndex%%%
@IF NOT DEFINED NetworkCfgCall%NetworkCfgIndex% Goto ScriptUsage
@Echo ==============================================================================================
@Call Set NetworkCfgCall=%%NetworkCfgCall:NetworkName=%Network%%%
@%NetworkCfgCall%
@Goto CheckCfg

@REM ==========================ScriptUsage==========================
:ScriptUsage
@Echo 参数配置查看
@Echo ---------------------------------------------
@Echo.
@Echo 第一个参数配置(网卡序号,省略时默认设置第一个网卡):
@Echo.
@FOR /L %%i IN (1,1,10) DO @Call Set NetworkI=%%Network%%i%% && (@IF DEFINED Network%%i @Echo         =%%i,  !NetworkI!)
@Echo.
@Echo ---------------------------------------------
@Echo.

@Echo 第二个参数配置(网络配置序号):
@Echo.
@FOR /L %%i IN (1,1,20) DO @Call Set NetworkCfgI=%%NetworkCfg%%i%% && (@IF DEFINED NetworkCfg%%i @Echo         =%%i,  !NetworkCfgI!)
@Echo         =-c,  %NetworkCfg-c%
@Echo         =-h,  %NetworkCfg-h%
@Echo.
@Echo ---------------------------------------------
@Echo.
@Pause
@Exit

:CheckCfg
@Echo 当前网络配置如下:
@IpConfig.exe /all
@Echo.
@Pause
@Exit

[ Last edited by cnLiou on 2008-5-12 at 10:13 PM ]