中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]ghost8里的一个批处理?我不懂!!
作者:
标题: [求助]ghost8里的一个批处理?我不懂!! 上一主题 | 下一主题
doslr
初级用户




积分 168
发帖 27
注册 2004-11-3
状态 离线
『楼 主』:  [求助]ghost8里的一个批处理?我不懂!!

@ECHO OFF
if not "%windir%*"=="*" goto Error   REM: 这句不明白
if "%3*"=="*" goto Sample              REM: 这句不明白
if not exist %1 goto Sample
if "%2"=="RTL8139" goto RTL8139
if "%2"=="DLE530TX" goto DLE530TX
if "%2"=="DFE530TX" goto DFE530TX
if "%2"=="DCN530TX" goto DCN530TX
if "%2"=="PRO100" goto PRO100
if "%2"=="IP100" goto IP100
if "%2"=="RTL8029" goto RTL8029
if "%2"=="VIA" goto VIA
if "%2"=="SIS" goto SIS
if "%2"=="3C90X" goto 3C90X
goto Sample
:Sample
echo.
echo Usage:  DGS GHO_File Ethernet_Adapter IP_Address
echo Sample: DGS SYS.GHO DLE530TX 1.1 ; SYS.GHO,  Legend DFE-530TX, 192.168.1.1
echo         DGS E:\X.GHO PRO100 DHCP ; E:\X.GHO, Intel PRO/100,    DHCP
echo.
echo Ethernet_Adapter: Realtek RTL8139 Family = RTL8139
echo                   Legend DFE-530TX       = DLE530TX
echo                   D-Link DFE-530TX       = DFE530TX
echo                   DigitalChina DCN-530TX = DCN530TX
echo                   Intel PRO/10/100       = PRO100
echo                   IC Plus IP100          = IP100
echo                   Realtek RTL8029        = RTL8029
echo                   VIA Rhine Family       = VIA
echo                   SiS 900/7016           = SIS
echo                   3Com 3C90x EtherLink   = 3C90X
goto End
:Error
echo.
echo Error!
echo This is GhostCast for DOS.
echo Please exit Windows and boot to DOS.
goto End
:RTL8139
rem - Realtek RTL8139 Family
NIC\RTL8139\RTSPKT.COM 0x60
goto IP
LE530TX
rem - Legend DFE-530TX
NIC\DLE530TX\DLKFET.COM 0x60
goto IP
FE530TX
rem - D-Link DFE-530TX
NIC\DFE530TX\DLKFET.COM 0x60
goto IP
CN530TX
rem - DigitalChina DCN-530TX
NIC\DCN530TX\DCNPKT.COM 0x60
goto IP
RO100
rem - Intel PRO/100
NIC\PRO100\E100BPKT.COM 0x60
goto IP
:IP100
rem - IC Plus IP100
NIC\IP100\IP100PD.COM 0x60
goto IP
:RTL8029
rem - Realtek RTL8029
NIC\RTL8029\PCIPKT.COM 0x60
goto IP
:VIA
rem - VIA Rhine Family
NIC\VIA\FETPKT.COM 0x60
goto IP
:SIS
rem - SiS 900/7016
NIC\SIS\SIS900.EXE -n 0x60
goto IP
:3C90X
rem - 3Com 3C90x EtherLink
NIC\3C90X\3C90XPD.COM /I=0x60
goto IP
:IP
if exist WATTCP.CFG del WATTCP.CFG
if "%3"=="DHCP" goto GHOSTSRV
echo IP = 192.168.0.3>> WATTCP.CFG
echo NETMASK = 255.255.255.0>> WATTCP.CFG
echo GATEWAY = >> WATTCP.CFG
goto GHOSTSRV
:GHOSTSRV
echo.
DOSGHSRV.EXE %1 CW -DISK1 -G"-CLONE,MODE=LOAD,SRC=@mcCW,DST=1 -SURE"
goto Uninstall
:Uninstall
echo.
if exist WATTCP.CFG del WATTCP.CFG
if "%2"=="RTL8139" goto RTL8139U
if "%2"=="DLE530TX" goto DLE530U
if "%2"=="DFE530TX" goto DFE530U
if "%2"=="DCN530TX" goto DCN530U
if "%2"=="PRO100" goto PRO100U
if "%2"=="IP100" goto IP100U
if "%2"=="RTL8029" goto RTL8029U
if "%2"=="VIA" goto VIAU
if "%2"=="SIS" goto SISU
if "%2"=="3C90X" goto 3C90XU
:RTL8139U
rem - Realtek RTL8139 Family
NIC\RTL8139\RTSPKT.COM -u
goto End
LE530U
rem - Legend DFE-530TX
NIC\DLE530TX\DLKFET.COM /u
goto End
FE530U
rem - D-Link DFE-530TX
NIC\DFE530TX\DLKFET.COM -u
goto End
CN530U
rem - DigitalChina DCN-530TX
NIC\DCN530TX\DCNPKT.COM -u
goto End
RO100U
rem - Intel PRO/100
NIC\PRO100\E100BPKT.COM -u
goto End
:IP100U
rem - IC Plus IP100
NIC\IP100\IP100PD.COM /u
goto End
:RTL8029U
rem - Realtek RTL8029
NIC\RTL8029\PCIPKT.COM -u
goto End
:VIAU
rem - VIA Rhine Family
NIC\VIA\FETPKT.COM -u
goto End
:SISU
rem - SiS 900/7016
echo SiS 900/7016 Packet Driver can't uninstall.
goto End
:3C90XU
rem - 3Com 3C90x EtherLink
NIC\3C90X\3C90XPD.COM -u /I=0x60
goto End
:End
echo.


if not "%windir%*"=="*" goto Error   REM: 这句不明白
if "%3*"=="*" goto Sample              REM: 这句不明白
这个 "%windir%*"="*" 这里用"*"星号是什么意思?? %windir%代表系统目录,这个我明白,但是后面的"*"后,%windir%* 是指什么意思呢?? 这个"*"后有什么作用?用这个星号可以判断出它是不是在windows还是在dos下??
if "%3*" =="*" 这里的“*”星号也是如此,有什么作用,起到什么??"



2004-11-12 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 2 楼』:  

其实这里的*号是多余的,在用if判断一个环境变量是否为空字符串时,为了防止环境变量为空,导致"if %var%==1"出现“ if  ==1”这种情况,一般都会在变量左右多加一个(或者多个)字符来防止,最常见的是在将环境变量用双引号括起来,例如if "%windir%"=="",当然你也可以用if %windir%#==# 或者 if %windir%*==*来代替双引号。



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2004-11-12 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
doslr
初级用户




积分 168
发帖 27
注册 2004-11-3
状态 离线
『第 3 楼』:  

呵呵,谢谢climbing大侠!原来 if not "%windir%*"=="*"  是为了防止 %windir%为空,导至 出现 if not ==* 这种情况

2004-11-16 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lho
初级用户




积分 126
发帖 11
注册 2004-9-30
状态 离线
『第 4 楼』:  

高手!

2004-11-29 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jieok3375
中级用户





积分 282
发帖 130
注册 2006-9-20
来自 广东
状态 离线
『第 5 楼』:  

学习了



~~~~好好学习
              天天向上~~~~
2006-10-14 00:44
查看资料  发送邮件  发短消息 网志  OICQ (147385156)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: