1、基于ASP的某传媒公司的网站设计与实现 摘 要:随着网络技术的不断发展,网站的开发与运用变得更加广泛。本项目基于ASP.NET动态网站开发技术,以VB及JAVA作为编程语言,选用ACCESS 2003作为后台数据库,设计与实现了基于Browser/Server结构的数据交互的动态网站系统。系统遵循软件工程方法论进行系统分析、总体设计、详细设计和系统测试,实现了用户注册与登录、浏览者发贴与回复、管理员对网站的管理与维护等功能。 关键词:B/S;动态网站;管理系统 Abstract:With the increasingly development of network technology, i
2、t is more extensive for the design and application of website. The project was designed based on ASP. NET dynamic website development technology, taking VB and JAVA as programming language, and chosing ACCESS 2003 as the background database. It implemented a dynamic website system with data exchange
3、 based on Browser/Server structure. The website system have conducted system analysis, general design, detailed design and system test following the software engineering theory, and realized the functions of user registration, browsing guest post and reply, administrator website-managing and mainten
4、ance and so on. Key words: Browser/Server;dynamic website;Management system当今社会,随着网络技术的蓬勃发展,网络已经成为现代人生活中不可或缺的一部份,各个商家也正因为看到了这一点,纷纷把自己企业的形象宣传做到了网络中。伴随着这一趋势的出现,网站技术的发展也不断提高,日趋成熟。大大小小的门户网站、个体私营宣传网站,乃至个人形象网站都纷拥而至,都在网络中竞相争彩。基于ASP的动态网站开发技术,是通过在传统的HTML语言中添加一些脚本语句,以实现浏览器与服务器之间数据交互的功能,从而满足网站管理者以网站宣传为手段获取利益的需
5、要。1 系统开发平台的简介1.1 系统开发环境表1.1 系统开发环境操作系统WINDOWS XP SP2浏览器IE6.0或以上版本开发语言VB及JAVA程序设计语言Web服务器IISIDE工具Adobe Dreamweaver CS3、Visual Studio2005数据库Access 20031.2 系统开发工具简介ASP.NET1,2是Microsoft.NET的一部份,它提供了一个统一的Web开发模型,其中包括开发人员生成企业级Web应用程序所需要的各种服务。ASP.NET 的语法在很大程度上与 ASP 兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提
6、供更好的安全保护。可以通过在现有 ASP 应用程序中逐渐添加 ASP.NET 功能,随时增强 ASP 应用程序的功能。其最新版本ASP.NET 2.0更是把如何能简化所有的一切作为了核心目标,根据这个核心目标,ASP.NET 2.0集中于对开发人员的效率、管理、性能和可伸缩性的开发。Visual Studio.NET3,4是Microsoft为了提供给开发人员更好的解决方案开发平台而推出的新一代开发平台。它里面包含Visual Basic.NET、C#、Visual C+、ASP.NET 以及VisualFoxPro。为了让这套开发平台更容易开发以Internet为基础的应用程序,这个开发平台
7、做了许多和以往不同的改革,这个改革就是.NET Framework。.NET 架构就是为了让开发分布式因特网应用程序架构变得更简单更容易而发展出来的。Microsoft Access 2003 5,6是一种关系型数据库管理系统,与其他关系型数据库一样,Microsoft Access充当“后端”,它的任务是存储数据。除此之外,通过使用Microsoft Access,用户还可以创建“前端”或一种对用户友好的、颇受欢迎的数据访问方式。与SQL Server数据库进行比较,Access数据库具有以下的特点:(1)功能比较单一,不提供数据发布、分布式事务处理等操作,因此比Access数据库需要的内存
8、和磁盘资源要少;(2)Access数据库一般用于桌面应用程序,不适用于大型的企业级应用。 2 网站总体设计分析2.1 网站功能设计分析本系统主要是实现公司形象的宣传,业界相关动态的更新,部分公司产品的展示以及对公司会员和网站浏览者的管理。因而在网站的功能方面需要进行如下考虑:一是浏览者对网站的浏览需要用到的功能;二是公司注册会员需要用到的功能;三是网站管理员维护网站时需要用到的功能。根据三种用户的不同需求,整个网站的功能设计如图2-1所示。网站首页产品展示公司论坛服务客户意见留言联系我们加入我们登陆界面注册会员留言首页我要留言管理员图2-1 网站整体设计2.2 网站功能模块的划分网站功能模块的
9、划分以用户拥有的权限作为依据,分为三种用户:一是管理人员,拥有管理和维护网站的权限,即能对新闻进行添加、修改和删除的权限,对会员的发帖或浏览者的留言有删除的权限;二是公司注册会员,拥有在公司论坛浏览相关文章、回复以及发帖的权限;三是浏览者,拥有在留言板留言及浏览网站对外公开内容的权限。根据用户权限的不同,划分的系统功能模块如图2-2所示。网站管理系统浏览者浏览网站相关内容注册成为公司 会员会 员拥有浏览者的所有相关权限浏览公司内部论坛的相关内容在公司内部论坛 发帖 管理员对公司会员的管理对网站相关内容的更新及维护在留言板块留言或提出意见对浏览者的管理图2-2 系统功能模块划分图2.3 网站功能
10、设计介绍网站的管理系统主要用于满足三种用户的需求,即网站浏览者、网站注册会员、网站管理者。其实网站对公司的形象宣传主要就是针对浏览者而言,浏览者通过网站上的相关内容的介绍从而对公司有了初步的了解,也可以通过网站上对外公布的内容获取公司的联系方式以及业界的相关动态,还可以通过留言板块,对公司提出宝贵的意见。如果需要对公司进一步了解则注册成为公司的会员,从而进一步获取公司的相关信息。公司会员则主要针对公司内部员工和想与公司保持一定联系的人员,其相对于浏览者而言,拥有的权限也相对较多。公司会员可以实现浏览者的所有功能,而且能在公司的内部论坛中浏览相关文章、发表新帖,从而也更好的方便了公司内部员工之间
11、的信息交流。网站管理员需要对网站进行定期维护和更新相关内容,从而拥管理网站的所有权限,包括对网站相关内容的添加、删除、修改,对公司会员信息的管理,对浏览者权限及留言的管理。对于网站管理员来说,主要作用还是体现在对后台数据库的管理,这里的信息量不但大,而且对数据的安全性和保密性要求也最高。为了保证数据的安全性和保密性,管理员的登陆模块并没有放在网站上,而是分离开的。整个系统从浏览到管理的执行流程如图2-3所示。浏览者浏览网站相关内容会员注 册登录管理员登录对网站内容进行维护和管理对浏览者及会员进行管理想保持联系注册成功正确输入用户名和密码登录失败登录成功在内部论坛上发表文章对网站相关内容的浏览对
12、公司内部论坛的访问管理员页面登录成功留言板的使用登录失败给网站留言会员页面图2-3 系统执行流程图2.4 数据库的设计数据库是应用程序不可或缺的重要组成部分,一个设计结构合理、功能齐全的数据库对于提高数据库应用程序的开发效率和程序的性能都是至关重要的。由于本系统所涉及的数据量不是很大,所以选用相较于SQL相对简单点的Access作为后台数据库。系统的数据库文件共有四个:用于网站内部论坛的数据库bbs,用于留言板的数据库liuyan,用于业界新闻管理的数据库news,用于会员注册的数据库zhuce。其中,数据库bbs包含表bbs和表bbsadmin,详细内容如下所示。表2.1 bbs字段名字类型
13、字段大小值是否允许为空是否为主键fID自动编号是title文本50否否author文本50否否content文本50否否time日期/时间否 表2.2 bbsadmin字段名字类型字段大小值是否允许为空是否为主键fID自动编号是Admin文本50否否password文本50否否数据库liuyan包含表liu和表tAdmin,详细内容如下所示。表2.3 liu字段名字类型字段大小值是否允许为空是否为主键fID自动编号是fname文本50否否fcontent备注50否否fQQ数字长整型是否femail文本50是否fHomepage文本50是否fTime日期/时间否fReplycontent备注50
14、是否表2.4 tAdmin字段名字类型字段大小值是否允许为空是否为主键编号自动编号是fAadmin文本50否否fPassword文本50否否数据库news包含表admin和表news,详细内容如下所示。表2.5 admin字段名字类型字段大小值是否允许为空是否为主键ID自动编号是username文本50否否password文本50否否表2.6 news字段名字类型字段大小值是否允许为空是否为主键ID自动编号是title文本50否否Content备注50否否time日期/时间否author文本50否否数据库zhuce包含一张表zhc,详细内容如下所示。表2.7 zhc字段名字类型字段大小值是否允
15、许为空是否为主键zhcID自动编号是zhcname文本50否否Email文本50否否tel数字长整型否否pass文本50否否注:所有表中涉及到时间的time 的默认值均为now()3 ASP动态网站应用程序的实现3.1 利用Dreamweaver相关组件实现数据模块功能Adobe Dreamweaver CS37,8对于网站的版面设计提供了相当强大而且便捷的功能,一些简单的数据模块也能通过Dreamweaver的操作来实现。整个网站的风格通过Dreamweaver制作了一个统一的版面模块,以后要设计其他页面的时候只需要导入模版,然后通过添加表格来对页面进行合理规划即可,一些简单的提交功能只需通
16、过操作Dreamweaver上面提供的“数据库、绑定、服务器行为、组件”相关选项就能实现。对于页面的访问控制,也可通过操作“服务器行为用户身份验证限制对页的访问”来实现。对于提交时,是否允许字符为空,则可以通过“标签行为检查表单”相关设置来实现。当需要添加VB9或JAVA10代码时候,可以先通过Visual Studio 2005编写相关代码,调试无问题后,再复制粘贴到html语言的相关位置。因为Visual Studio 2005的智能化程度较于其他设计平台更高,所以能减少编写代码者的工作量。总之在制作设计的时候,要尽量结合Dreamweaver和Visual Studio 2005的各自优
17、点,前者则重于版面的设计,而后者则重于代码的编写,只有两者充分的结合才能提高制作的工作效率,而且能够达到很好的效果。3.2 主要功能模块的设计与实现本网站通过不同的用户,实现了不同层次上的功能。针对浏览者、注册会员、管理员分别采用了不同的页面,此种设计不但利于管理,对于安全性来说,也相对较高。根据不同的功能需求,设计了不同的版式页面,最终实现了一个完整的动态网站交互系统。3.2.1 网站主页模块的设计与实现网站的主页主要实现对其他页面访问的导航功能,对公司形象的综合宣传,向浏览者提供近段时间业界的相关动态新闻。如图3-1所示。图3-1 网站主页3.2.2 网站留言板的设计与实现留言板主要针对浏
18、览者而设计,主要是为了方便浏览者与公司的交流。浏览者不需要注册就可以在留言版块上留言,提出对公司的意见。管理员可以通过管理员登陆窗口进入管理员页面对留言内容进行回复和定期维护。如图3-2所示。图3-2 浏览者留言页面3.2.3 会员注册及内部论坛模块的设计与实现公司的内部论坛主要针对内部员工和注册会员,要浏览论坛的内容,必须注册成为公司的会员后,才能访问。管理员对论坛的定期维护和管理则需要登陆到管理员页面才能进行,而管理员页并未放在网站上,而是单独分离出来的,这对于论坛的安全性来说,也有了进一步的提高。如图3-3所示为会员注册页面。图3-3 会员注册页面3.2.4 管理员对网站新闻更新和维护模
19、块的设计与实现对于本网站的新闻管理系统,同样出安全和保密性的考虑,没放在网站,而是单独分离出来的一个版块。浏览者只能在网站上查看新闻动态和新闻内容,却无法登陆到新闻管理页面。只有管理员通过专门的管理员登陆窗口才能访问新闻管理页面。如图3-4所示为新闻系统管理员页面。 图3-4 新闻系统管理员页面结束语基于ASP的某传媒公司网站其管理员用户可以在网站中发布本行业近期的相关新闻,能在“产品展示”一栏中发布本公司的一些成功作品,并与浏览者交换有关产品的相关意见,以管理员身份管理“公司论坛”“会员注册”等栏目的数据信息。而浏览者可以在网站中了解近期行业中的新闻,了解本公司的产品信息,注册成为公司的会员
20、,以及以会员的身份在“公司论坛”中发帖,在“产品展示”中提出自己的意见。系统实现了当前网站设计的所有主要功能,基本能满足客户的需要,而且模块化的程序设计便于使用者修改及根据当前需要进行相关信息的扩充。但系统还存在一些缺陷,例如功能化的模块相对较少,静态页面相对较多,而论坛一块没有设计会员回复等功能,这些方面都还有待进一步完善。参考文献:1 康春颖. ASP.NET实用教程M. 北京:清华大学出版, 2008.2 郑耀东. ASP NET 2.0编程指南M. 北京:人民邮电出版社, 2007. 3 童爱红,刘凯. VB.NET应用教程M. 北京:清华大学出版社, 2008.4 王晟. Visua
21、l Basic.NET数据库开发经典案例解析M. 北京:清华大学出版社, 2007.5 孔璐. ASP+Dreamweaver数据库网站开发与实例M. 北京:清华大学出版社, 2007.6 刘端阳,黎卫东,黄炳强. ASP+Access 网站开发实例精讲M. 北京:人民邮电出版社, 2007.7 戎马工作室. Dreamweaver 8+ASP动态网站开发从入门到精通M. 北京:机械工业出版社, 2007.8 何秀芳. Dreamweaver CS3 从入门到精通M. 北京:人民邮电出版社, 2007.9 沈建蓉,单贵. 大学VB程序设计实践教程M. 上海:复旦大学出版社, 2007.10张桂
22、珠. Java面向对象程序设计M. 北京:北京邮电大学出版社, 2007.附录资料:不需要的可以自行删除bat文件的基本应用bat是dos下的批处理文件 .cmd是nt内核命令行环境的另一种批处理文件 从更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由外壳进行解释执行的文本,都具有与批处理文件十分相似的作用,而且同样是由专用解释器以行为单位解释执行,这种文本形式更通用的称谓是脚本语言。所以从某个程度分析,batch, unix shell, awk, basic, perl 等脚本语言都是一样的,只不过应用的范围和解释的平台各有不同而已。甚至有些应用程序仍然沿用批处理
23、这一称呼,而其内容和扩展名与dos的批处理却又完全不同。 = 首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。 = 注 = 批处理文件中完全可以使用非dos命令,甚至可以使用不具有可执行特性的普通数据性文件,这缘于windows系统这个新型解释平台的涉入,使得批处理的应用越来越边缘化。所以我们讨论的批处理应该限定在dos环境或者命令行环境中,否则很多观念和设定都需要做比较大的变动。 = 其次,批处理文件是一
24、种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来循环执行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来是十分有限的,也是十分不规范的。批处理的程序语句就是一条条的DOS命令(包括内部命令和外部命令),而批处理的能力主要取决于你所使用的命令。 = 注 = 批处理文件(batch file)也可以称之为批处理程序(batch program),这一点与编译型语言有所不同,就c语言来说,扩展名为c或者cpp的文件可以称之为c语言文件或者c语言源代码,但只有编译连接后的exe文件才可以称之为c语言程序。因为批处
25、理文件本身既具有文本的可读性,又具有程序的可执行性,这些称谓的界限是比较模糊的。 = 第三,每个编写好的批处理文件都相当于一个DOS的外部命令,你可以把它所在的目录放到你的DOS搜索路径(path)中来使得它可以在任意位置运行。一个良好的习惯是在硬盘上建立一个bat或者batch目录(例如C:BATCH),然后将所有你编写的批处理文件放到该目录中,这样只要在path中设置上c:batch,你就可以在任意位置运行所有你编写的批处理程序。 = 注 = 纯以dos系统而言,可执行程序大约可以细分为五类,依照执行优先级由高到低排列分别是:DOSKEY宏命令(预先驻留内存),COMMAND.COM中的内
26、部命令(根据内存的环境随时进驻内存),以com为扩展名的可执行程序(由 直接载入内存),以exe位扩展名的可执行程序(由 重定位后载入内存),以bat位扩展名的批处理程序(由 解释分析,根据其内容按优先级顺序调用第2,3,4,5种可执行程序,分析一行,执行一行,文件本身不载入内存) = 第四,在DOS和Win9x/Me系统下,C:盘根目录下的AUTOEXEC.BAT批处理文件是自动运行批处理文件,每次系统启动时会自动运行该文件,你可以将系统每次启动时都要运行的命令放入该文件中,例如设置搜索路径,调入鼠标驱动和磁盘缓存,设置系统环境变量等。下面是一个运行于Windows 98下的autoexec
27、.bat的示例: ECHO OFF PATH C:WINDOWS;C:WINDOWSCOMMAND;C:UCDOS;C:DOSTools; C:SYSTOOLS;C:WINTOOLS;C:BATCH LH SMARTDRV.EXE /X LH DOSKEY.COM /insert LH CTMOUSE.EXE SET TEMP=D:TEMP SET TMP=D:TEMP = 注 = AUTOEXEC.BAT为DOS系统的自动运行批处理文件,由COMMAND.COM启动时解释执行; 而在Win9x环境中,不仅增加支持了 DOSSTART.BAT, WINSTART.BAT 等许多其它自动运行的批
28、处理文件,对AUTOEXEC.BAT 也增加了 .DOS .W40 .BAK .OLD .PWS 等许多变体以适应复杂的环境和多变的需求。 = willsort 编注 = 以下关于命令的分类,有很多值得推敲的地方。常用命令中的本不是命令,而dir、copy等也很常用的命令却没有列入, 而特殊命令中所有命令对我来说都是常用命令。建议将批处理所引用的命令分为内部命令、外部命令、第三方程序三类。而内部命令和外部命令中别有一类是专用于或常用于批处理中的命令可称之为批处理命令。 以下摘录MS-DOS 6.22 帮助文档中关于批处理命令的文字,当然,其中有些概念和定义已经有些落后了。 批处理命令 批处理文
29、件或批处理程序是一个包含若干MS-DOS命令的正文文件,扩展名为.BAT。当在命令提示符下敲入批处理程序的名称时,MS-DOS成组执行此批处理程序中的命令。 任何在命令提示符下可使用的命令都可用在批处理程序中。此外,下面MS-DOS命令是专门在批处理程序中使用的。 = 常用命令 echo、call、pause、rem(小技巧:用:代替rem)是批处理文件最常用的几个命令,我们就从他们开始学起。 = 注 = 首先, 不是一个命令, 而是DOS 批处理的一个特殊标记符, 仅用于屏蔽命令行回显. 下面是DOS命令行或批处理中可能会见到的一些特殊标记符: CR(0D) 命令行结束符 Escape(1B
30、) ANSI转义字符引导符 Space(20) 常用的参数界定符 Tab(09) ; = 不常用的参数界定符 + COPY命令文件连接符 * ? 文件通配符 字符串界定符 | 命令管道符 文件重定向符 命令行回显屏蔽符 / 参数开关引导符 : 批处理标签引导符 % 批处理变量引导符 其次, : 确实可以起到rem 的注释作用, 而且更简洁有效; 但有两点需要注意: 第一, 除了 : 之外, 任何以 :开头的字符行, 在批处理中都被视作标号, 而直接忽略其后的所有内容, 只是为了与正常的标号相区别, 建议使用 goto 所无法识别的标号, 即在 :后紧跟一个非字母数字的一个特殊符号. 第二, 与
31、rem 不同的是, :后的字符行在执行时不会回显, 无论是否用echo on打开命令行回显状态, 因为命令解释器不认为他是一个有效的命令行, 就此点来看, rem 在某些场合下将比 : 更为适用; 另外, rem 可以用于 config.sys 文件中. = echo 表示显示此命令后的字符 echo off 表示在此语句后所有运行的命令都不显示命令行本身 与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。 call 调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的
32、后续命令)。 pause 运行此句会暂停批处理的执行并在屏幕上显示Press any key to continue.的提示,等待用户按任意键后继续 rem 表示此命令后的字符为解释行(注释),不执行,只是给自己今后参考用的(相当于程序中的注释)。 = 注 = 此处的描述较为混乱, 不如直接引用个命令的命令行帮助更为条理 - ECHO 当程序运行时,显示或隐藏批处理程序中的正文。也可用于允许或禁止命令的回显。 在运行批处理程序时,MS-DOS一般在屏幕上显示(回显)批处理程序中的命令。 使用ECHO命令可关闭此功能。 语法 ECHO ON|OFF 若要用echo命令显示一条命令,可用下述语法:
33、 echo message 参数 ON|OFF 指定是否允许命令的回显。若要显示当前的ECHO的设置,可使用不带参数的ECHO 命令。 message 指定让MS-DOS在屏幕上显示的正文。 - CALL 从一个批处理程序中调用另一个批处理程序,而不会引起第一个批处理的中止。 语法 CALL drive:pathfilename batch-parameters 参数 drive:pathfilename 指定要调用的批处理程序的名字及其存放处。文件名必须用.BAT作扩展名。 batch-parameters 指定批处理程序所需的命令行信息。 - PAUSE 暂停批处理程序的执行并显示一条消息
34、,提示用户按任意键继续执行。只能在批处 理程序中使用该命令。 语法 PAUSE REM 在批处理文件或CONFIG.SYS中加入注解。也可用REM命令来屏蔽命令(在CONFIG.SYS 中也可以用分号 ; 代替REM命令,但在批处理文件中则不能替代)。 语法 REM string 参数 string 指定要屏蔽的命令或要包含的注解。 = 例1:用edit编辑a.bat文件,输入下列内容后存盘为c:a.bat,执行该批处理文件后可实现:将根目录中所有文件写入 a.txt中,启动UCDOS,进入WPS等功能。 批处理文件的内容为: 命令注释: echo off 不显示后续命令行及当前命令行 dir
35、 c:*.* a.txt 将c盘文件列表写入a.txt call c:ucdosucdos.bat 调用ucdos echo 你好 显示你好 pause 暂停,等待按键继续 rem 准备运行wps 注释:准备运行wps cd ucdos 进入ucdos目录 wps 运行wps 批处理文件的参数 批处理文件还可以像C语言的函数一样使用参数(相当于DOS命令的命令行参数),这需要用到一个参数表示符%。 %1-9表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用%1到%9顺序表示。 例2:C:根目录下有一
36、批处理文件名为f.bat,内容为: echo off format %1 如果执行C:f a: 那么在执行f.bat时,%1就表示a:,这样format %1就相当于format a:,于是上面的命令运行时实际执行的是format a: 例3:C:根目录下一批处理文件名为t.bat,内容为: echo off type %1 type %2 那么运行C:t a.txt b.txt %1 : 表示a.txt %2 : 表示b.txt 于是上面的命令将顺序地显示a.txt和b.txt文件的内容。 = 注 = 参数在批处理中也作为变量处理, 所以同样使用百分号作为引导符, 其后跟0-9中的一个数字构
37、成参数引用符. 引用符和参数之间 (例如上文中的 %1 与 a: ) 的关系类似于变量指针与变量值的关系. 当我们要引用第十一个或更多个参数时, 就必须移动DOS 的参数起始指针. shift 命令正充当了这个移动指针的角色, 它将参数的起始指针移动到下一个参数, 类似C 语言中的指针操作. 图示如下: 初始状态, cmd 为命令名, 可以用 %0 引用 cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10 | | | | | | | | | | %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 经过1次shift后, cmd
38、将无法被引用 cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10 | | | | | | | | | | %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 经过2次shift后, arg1也被废弃, %9指向为空, 没有引用意义 cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10 | | | | | | | | | %0 %1 %2 %3 %4 %5 %6 %7 %8 遗憾的是, win9x 和DOS下均不支持 shift 的逆操作. 只有在 nt 内核命令行环境下,
39、shift 才支持 /n 参数, 可以以第一参数为基准返复移动起始指针. = 特殊命令 if goto choice for是批处理文件中比较高级的命令,如果这几个你用得很熟练,你就是批处理文件的专家啦。 一、if 是条件语句,用来判断是否符合规定的条件,从而决定执行不同的命令。 有三种格式: 1、if not 参数 = 字符串 待执行的命令 参数如果等于(not表示不等,下同)指定的字符串,则条件成立,运行命令,否则运行下一句。 例:if %1=a format a: = if 的命令行帮助中关于此点的描述为: IF NOT string1=string2 command 在此有以下几点需要
40、注意: 1. 包含字符串的双引号不是语法所必须的, 而只是习惯上使用的一种防空字符 2. string1 未必是参数, 它也可以是环境变量, 循环变量以及其他字符串常量或变量 3. command 不是语法所必须的, string2 后跟一个空格就可以构成一个有效的命令行 = 2、if not exist 路径文件名 待执行的命令 如果有指定的文件,则条件成立,运行命令,否则运行下一句。 如: if exist c:config.sys type c:config.sys 表示如果存在c:config.sys文件,则显示它的内容。 * 注 * 也可以使用以下的用法: if exist comm
41、and device 是指DOS系统中已加载的设备, 在win98下通常有: AUX, PRN, CON, NUL COM1, COM2, COM3, COM4 LPT1, LPT2, LPT3, LPT4 XMSXXXX0, EMMXXXX0 A: B: C: ., CLOCK$, CONFIG$, DblBuff$, IFS$HLP$ 具体的内容会因硬软件环境的不同而略有差异, 使用这些设备名称时, 需要保证以下三点: 1. 该设备确实存在(由软件虚拟的设备除外) 2. 该设备驱动程序已加载(aux, prn等标准设备由系统缺省定义) 3. 该设备已准备好(主要是指a: b: ., com
42、1., lpt1.等) 可通过命令 mem/d | find device /i 来检阅你的系统中所加载的设备 另外, 在DOS系统中, 设备也被认为是一种特殊的文件, 而文件也可以称作字符设备; 因为设备(device)与文件都是使用句柄(handle)来管理的, 句柄就是名字, 类似于文件名, 只不过句柄不是应用于磁盘管理, 而是应用于内存管理而已, 所谓设备加载也即指在内存中为其分配可引用的句柄. = 3、if errorlevel 待执行的命令 很多DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态),通过if errorlevel命令可以判断程序的返回值,根据不同
43、的返回值来决定执行不同的命令(返回值必须按照从大到小的顺序排列)。如果返回值等于指定的数字,则条件成立,运行命令,否则运行下一句。 如if errorlevel 2 goto x2 = 注 = 返回值从大到小的顺序排列不是必须的, 而只是执行命令为 goto 时的习惯用法, 当使用 set 作为执行命令时, 通常会从小到大顺序排列, 比如需将返回码置入环境变量, 就需使用以下的顺序形式: if errorlevel 1 set el=1 if errorlevel 2 set el=2 if errorlevel 3 set el=3 if errorlevel 4 set el=4 if errorlevel 5 set el=5