<?xml version="1.0" encoding="utf-8"?><rss version="2.0">
<channel>
<title><![CDATA[编程之旅]]></title>
<link>http://blog.pfan.cn/xueyb</link>
<description>编程爱好者博客</description>
<language>zh-cn</language>
			<item>
		<title><![CDATA[jsp页面form变量的三级设置模式]]></title>
		<link>http://blog.pfan.cn/xueyb/4258.html</link>
		<description><![CDATA[Web页面，form变量的三级设置模式：
对于一个页面的属性，我们经常的需要各种条件的判断，然后产生不同的效果。如：
页面上有一个下拉列表框，表示一个代码。
1、 应用中需要根据不同的选择，也面有不同的控制动作；
2、 而有的动作有时有条件的，如果条件不满足，就要重新设置为选择前的值；
3、 而判断的条件是代码选择由1—〉2时才会有条件限制。

由以上相应的要求，就要对jsp相应的form设置相应的属性变量：
1、 currentCode
&nbsp;&nbsp;&nbsp;&nbsp;用来完成设置和接受jsp的值。如果值正常发生变化，就要重新设置previousCode= currentCode；
2、 previousCode
&nbsp;&nbsp;&nbsp;&nbsp;如果条件不满足或用户确认每通过，就要用此值设回原来的值。CurrentCode=previousCode；
3、 originCode
&nbsp;&nbsp;&nbsp;&nbsp;如果判断的条件与其自身的转变状态有关，就要有此值。
&nbsp;&nbsp;&nbsp;&nbsp;if(currentCode==2 &amp;&amp; originCode==1){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(condition){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;……
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CurrentCode=previousCode；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}else{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;previousCode= currentCode；
&nbsp;&nbsp;&nbsp;&nbsp;}]]></description>
		<author><![CDATA[xueyb]]></author>
		<pubDate>2005-08-30 11:10:00</pubDate>
		</item>
				<item>
		<title><![CDATA[点击url时画面没有响应的问题]]></title>
		<link>http://blog.pfan.cn/xueyb/4142.html</link>
		<description><![CDATA[1. 在jsp开发时，出现了个奇怪的问题：点击url时，画面没有任何响应，即不进入相应的业务画面。但是原来确是没有问题，都是正常的呀？

2. 经调查，发现在xxxxx.jsp有如下代码：
&nbsp;&nbsp;&nbsp;&lt;logic:equal name=&quot;list&quot; property=&quot;selectFlag&quot; value=&quot;true&quot;&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;html:link href=&quot;xxxxx.do&quot; name=&quot;list&quot; property=&quot;paramMap&quot; onclick=&quot;js _Click();return false&quot;&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean:write name=&quot;list&quot; property=&quot;name&quot; /&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/html:link&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;
&nbsp;&nbsp;&lt;/logic:equal&gt;
&nbsp;&nbsp;形成的html，如下：
&nbsp;&nbsp;&lt;A HREF=&quot;http://127.0.0.1:9080/xxx.do?index=4&amp;id=18423301003&quot; onclick=&quot; js _Click();return false &quot; &gt; Link to something &lt;/A&gt;

3.html对象A，onClick()方法的默认响应为如下：
&nbsp;&nbsp;Initiates any action associated with the object. For example, if the user clicks an A object, the]]></description>
		<author><![CDATA[xueyb]]></author>
		<pubDate>2005-08-25 10:40:00</pubDate>
		</item>
				<item>
		<title><![CDATA[使用servlet上传文件]]></title>
		<link>http://blog.pfan.cn/xueyb/3673.html</link>
		<description><![CDATA[--------------转载，以备查询之需----------------------
　　在Web 应用程序中，用户向服务器上传文件是非常普遍的操作。使用Servlet 实现文件的上传是比较简单的。

　　编程思路：下面的UploadServlet.java ，其主要功能为从InputStream 中读取文件内容，将上传文件保存在根目录下，且文件名与上传文件的文件名一致。

　　UploadServlet.java 的源代码如下：(代码节选)

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class UploadServlet extends HttpServlet
{
//default maximum allowable file size is 1000k
static final int MAX_SIZE = 1024000;
//instance variables to store root and success message
String rootPath, successMessage;
/**
* init method is called when servlet is initialized.
*/
public void init(ServletConfig config) throws ServletException
{
super.init(config);
//get path in which to save file
rootPath = config.getInitParameter(&quot;RootPath&quot;);
if (rootPath == null)
{
rootPath = &quot;/&quot;;
}
/*Get message to show when upload is complete. Used only if
a success redirect page is not supplied.*/
successMessage = config.getInitParameter(&quot;SuccessMessage&quot;);
if (successMessage]]></description>
		<author><![CDATA[xueyb]]></author>
		<pubDate>2005-08-11 09:51:00</pubDate>
		</item>
				<item>
		<title><![CDATA[用批处理创建CVS别名用户]]></title>
		<link>http://blog.pfan.cn/xueyb/3426.html</link>
		<description><![CDATA[为方便创建CVS别名用户，特做此批处理：add_cvsuser.bat
1、 需要传递创建的用户名，如果已经有这个用户，则会删除原用户，并重新创建。
2、 设置CVSROOT。
&nbsp;&nbsp;&nbsp;&nbsp;：协议：有管理权限的用户名[：用户密码]@服务器名或IP：端口：资源库位置
&nbsp;&nbsp;&nbsp;&nbsp;:pserver:administrator:******@127.0.0.1:2401:d:/CVS_HOME
&nbsp;&nbsp;&nbsp;&nbsp;用户密码可以不写，在运行时输入。
3、 创建的用户映射到系统用户的命令为：
&nbsp;&nbsp;&nbsp;&nbsp;cvs passwd -a -r administrator newUser
&nbsp;&nbsp;&nbsp;&nbsp;administrator 为服务器本地用户。
&nbsp;&nbsp;&nbsp;&nbsp;newUser 为新建的用户，本质为administrator的别名。
4、 将一些不重要的信息输出到cvs_log文件中。
5、 为项目每一个成员创建一个用户，方便cvs服务器的管理。
6、 批处理文件内容如下：

@ echo off
IF not &quot;%1&quot;==&quot;&quot; GOTO _ADD
echo usage:add_cvsuser [user_name]
GOTO _DONE

:_ADD
set CVSROOT=: pserver:administrator:******@127.0.0.1:2401:d:/CVS_HOME
cvs login &gt;&gt;cvs_log

REM add user to cvs
cvs passwd -X %1 &gt;&gt;cvs_log

:_READD
echo -----------------------
@cvs passwd -a -r administrator %1
IF NOT %ERRORLEVEL%==0 GOTO _READD

cvs logout &gt;&gt;cvs_log
:_DONE

7、 运行的效果如下：

C:\&gt;add_cvsuser
usage:add_cvsuser [user_na]]></description>
		<author><![CDATA[xueyb]]></author>
		<pubDate>2005-08-04 15:43:00</pubDate>
		</item>
				<item>
		<title><![CDATA[Applet数字签名实现方法]]></title>
		<link>http://blog.pfan.cn/xueyb/3309.html</link>
		<description><![CDATA[Applet访问本地系统，很是容易实现。


a)&nbsp;&nbsp;&nbsp;&nbsp;测试时，使用policytool工具，打开IE使用的jre的策略文件，增加相应的权限即可。对于sun的jre,位置在：C:\Program Files\Java\j2re1.4.2_04\lib\security\java.policy。微软的jre位置及配置不详。

b)&nbsp;&nbsp;&nbsp;&nbsp;发布时，最好是使用签名。首先生成密钥，可以使用JDK1.4自带的密钥工具。
&nbsp;&nbsp;&nbsp;&nbsp;i.&nbsp;&nbsp;&nbsp;&nbsp;keystore文件存储签名者的公钥/私钥对，这个文件用来存储已命名的、受密码保护的密钥。
&nbsp;&nbsp;&nbsp;&nbsp;ii.&nbsp;&nbsp;&nbsp;&nbsp;keytool工具：用来生成新的密钥对，将这个密钥对和一个名称（或别名）相关联，并用密码将他们保护起来。这个别名在每个keystore文件中都是独立的，它用于在一个特定的keystore文件中识别一个特定的密钥队。要访问或修改包含在keystroe文件中的密钥对信息，必须要有这个密钥对的密码。
&nbsp;&nbsp;&nbsp;&nbsp;iii.&nbsp;&nbsp;&nbsp;&nbsp;keytool -genkey&nbsp;&nbsp;-alias friend -keypass friend4life -validity 1000 -keystore ijvmkeys
&nbsp;&nbsp;&nbsp;&nbsp;-validity 1000 这个密钥对的有效天数1000天，相当于27年多。
&nbsp;&nbsp;&nbsp;&nbsp;此命令，为别名friend产生密码为friend4life的密钥对，存储在ijvmkeys的keystore文件中。
&nbsp;&nbsp;&nbsp;&nbsp;当第一次存储到ijvmkeys时，需输入一个keystore密码，在对这个keystore文件进行任意访问和修改时都需要这个密码（-storepass）。

c)&nbsp;&nbsp;&nbsp;&nbsp;签名jar文件
&nbsp;&nbsp;&nbsp;&nbsp;i]]></description>
		<author><![CDATA[xueyb]]></author>
		<pubDate>2005-07-29 22:53:00</pubDate>
		</item>
				<item>
		<title><![CDATA[java应用调用EJB]]></title>
		<link>http://blog.pfan.cn/xueyb/3267.html</link>
		<description><![CDATA[1、在应用中调用EJB,而不同的JDK结果却是不同的。机器环境的path是SUN的JDK.
&nbsp;&nbsp;&nbsp;&nbsp;在cmd中： java -classpath &quot;F:\jbuid_project\test\classes;E:\WebSphere\AppServer\lib\namingclient.jar;E:\WebSphere\AppServer\properties;&quot;&nbsp;&nbsp;test.STestEJBTestClient1
&nbsp;&nbsp;&nbsp;&nbsp;会发生异常：
&nbsp;&nbsp;&nbsp;&nbsp;javax.naming.NamingException: Failed to initialize the ORB [Rootxception is org.omg.CORBA.INITIALIZE: can't instantiate default ORB implementation com.ibm.CORBA.iiop.ORB&nbsp;&nbsp;vmcid: 0x0&nbsp;&nbsp;minor code: 0&nbsp;&nbsp;completed: No]
2、IBM支持的ORB与SUN的不一致，导致用SUN的JRE运行App不能正常init ORB对象。如果用IBM的JRE就会没有问题。
&nbsp;&nbsp;&nbsp;&nbsp;E:\WebSphere\AppServer\java\bin\java -classpath&nbsp;&nbsp;&quot;F:\jbuid_project\test\classes;E:\WebSphere\AppServer\lib\namingclient.jar;E:\WebSphere\AppServer\properties;&quot;&nbsp;&nbsp;test.STestEJBTestClient1
3、namingclient.jar 依赖的包基本上涵盖了E:\WebSphere\AppServer\lib下的所有的包。
4、在IBM的JRE中，jre\lib下有文件：orb.properties，其中有一项：com.ibm.CORBA.LocalHost = XueYb.Astr]]></description>
		<author><![CDATA[xueyb]]></author>
		<pubDate>2005-07-27 16:38:00</pubDate>
		</item>
				<item>
		<title><![CDATA[CvsCommand]]></title>
		<link>http://blog.pfan.cn/xueyb/2848.html</link>
		<description><![CDATA[CVSNT command reference
1.&nbsp;&nbsp;&nbsp;&nbsp;Command List 
2.&nbsp;&nbsp;&nbsp;&nbsp;add 
3.&nbsp;&nbsp;&nbsp;&nbsp;admin 
4.&nbsp;&nbsp;&nbsp;&nbsp;annotate 
5.&nbsp;&nbsp;&nbsp;&nbsp;chacl 
6.&nbsp;&nbsp;&nbsp;&nbsp;checkout 
7.&nbsp;&nbsp;&nbsp;&nbsp;chown 
8.&nbsp;&nbsp;&nbsp;&nbsp;commit 
9.&nbsp;&nbsp;&nbsp;&nbsp;diff 
10.&nbsp;&nbsp;&nbsp;&nbsp;edit 
11.&nbsp;&nbsp;&nbsp;&nbsp;editors 
12.&nbsp;&nbsp;&nbsp;&nbsp;export 
13.&nbsp;&nbsp;&nbsp;&nbsp;history 
14.&nbsp;&nbsp;&nbsp;&nbsp;import 
15.&nbsp;&nbsp;&nbsp;&nbsp;init 
16.&nbsp;&nbsp;&nbsp;&nbsp;info 
17.&nbsp;&nbsp;&nbsp;&nbsp;log 
18.&nbsp;&nbsp;&nbsp;&nbsp;login 
19.&nbsp;&nbsp;&nbsp;&nbsp;logout 
20.&nbsp;&nbsp;&nbsp;&nbsp;ls 
21.&nbsp;&nbsp;&nbsp;&nbsp;lsacl 
22.&nbsp;&nbsp;&nbsp;&nbsp;passwd 
23.&nbsp;&nbsp;&nbsp;&nbsp;authserver 
24.&nbsp;&nbsp;&nbsp;&nbsp;rannotate 
25.&nbsp;&nbsp;&nbsp;&nbsp;rdiff 
26.&nbsp;&nbsp;&nbsp;&nbsp;release 
27.&nbsp;&nbsp;&nbsp;&nbsp;remove 
28.&nbsp;&nbsp;&nbsp;&nbsp;rlog 
29.&nbsp;&]]></description>
		<author><![CDATA[xueyb]]></author>
		<pubDate>2005-07-15 14:47:00</pubDate>
		</item>
				<item>
		<title><![CDATA[WebSphere配置资源库管理]]></title>
		<link>http://blog.pfan.cn/xueyb/2628.html</link>
		<description><![CDATA[管理资源库
&nbsp;&nbsp;&nbsp;&nbsp;WebSphere Application Server 将每个 WebSphere Application Server 实例的配置数据存储在 XML 文档中，这些文档驻留在实例的根目录下的目录级联层次结构中。目录的此层次结构构成 WebSphere Application Server 实例的管理资源库。配置文档描述服务器、节点、应用程序和资源，它们是实例的一部分。
&nbsp;&nbsp;&nbsp;&nbsp;配置目录的层次结构
&nbsp;&nbsp;&nbsp;&nbsp;在 Network Deployment 环境中，目录的级联层次结构和文档的结构支持多个节点复制，以使一个单元中的所有进程的活动同步。缺省情况下，对 Network Deployment 实例的单元资源库中的配置文档进行的更改将自动复制到存储在遍及单元的节点中的相同配置文档中。
&nbsp;&nbsp;&nbsp;&nbsp;每个 WebSphere Application Server 和 Network Deployment 实例的管理资源库从直接位于实例的根目录下的 config 目录开始。对于缺省实例，管理资源库包含在 /QIBM/UserData/WebAS5/edition/default/config 目录中，其中 edition 分别是 WebSphere Application Server 的 Base 和 WebSphere Application Server Network Deployment 的 ND。
实例的管理资源库包含下列目录和文件：
&nbsp;&nbsp;&nbsp;&nbsp;·&nbsp;&nbsp;&nbsp;&nbsp;/config
&nbsp;&nbsp;&nbsp;&nbsp;config 目录是实例的资源库根目录。它包含单个文件 plugin-cfg-service.xmi。plugin-cfg-service 文件定义定制服务，该服务导致每次启动应用程序服务器时重新生成 Web 服务器插件文件 plugin-cfg.xml。有关定制服务的更多信息，参见定制服务。
&nbsp;&nbsp;&nbsp;&nbsp;·&nbsp;&nbsp;&nbsp;&nbsp;/conf]]></description>
		<author><![CDATA[xueyb]]></author>
		<pubDate>2005-07-07 13:50:00</pubDate>
		</item>
				<item>
		<title><![CDATA[ANT发布应用的框架]]></title>
		<link>http://blog.pfan.cn/xueyb/1544.html</link>
		<description><![CDATA[应用的开发如有一个好的结构，给程序的开发及发布带来便捷，一点总结：

1、文件夹的结构：
ant.properties&nbsp;&nbsp;：存放每个业务模块的ant打包属性文件。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IHC0100.properties
Build&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;：存放打包后的文件，ant打包时会自动生成。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;build.xml
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;createJar.bat
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;deploy.bat
Doc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;：生成的doc文件。
js&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;：存放jsp的js文件。
jsp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;：存放jsp文件。
src&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;：存放程序的原文件。
CSS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;：存放jsp的css文件。
deploy&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;：打]]></description>
		<author><![CDATA[xueyb]]></author>
		<pubDate>2005-06-07 17:28:00</pubDate>
		</item>
				<item>
		<title><![CDATA[wsadmin管理WebSphere]]></title>
		<link>http://blog.pfan.cn/xueyb/1527.html</link>
		<description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;WebSphere Application Server 提供了一个名为 wsadmin 的命令行管理工具，可以使用它以交互方式或通过使用 Jacl 脚本文件来运行管理命令。wsadmin 工具使用支持各种脚本语言的“Bean 脚本编制框架”（BSF）来配置和控制 WebSphere Application Server。在 WebSphere Application Server V5.0 中，wsadmin 只支持 Jacl 脚本语言。
&nbsp;&nbsp;&nbsp;&nbsp;wsadmin 启动程序通过特定于语言的接口使 Java 对象可用。脚本将这些对象用于应用程序管理、配置、操作控制和与运行在 WebSphere 服务器进程中的 MBean 进行通信。

&nbsp;&nbsp;&nbsp;&nbsp;WebSphere Application Server V5.0 System Management 将管理功能分成以下类别： 
&nbsp;&nbsp;&nbsp;&nbsp;·配置：这些功能与 WebSphere Application Server V5.0 安装的配置有关。 
&nbsp;&nbsp;&nbsp;&nbsp;·操作：这些功能与 WebSphere Application Server V5.0 安装中当前运行的对象有关。 
&nbsp;&nbsp;&nbsp;&nbsp;·应用程序管理：这些功能与安装、卸载和管理企业应用程序有关。 
以下主题提供关于 wsadmin 和如何使用它来管理 WebSphere Application Server 的实例的信息：

运行 wsadmin 工具.

&nbsp;&nbsp;&nbsp;&nbsp;此主题描述如何启动交互式 wsadmin 会话和调用 wsadmin 命令的其它方法。可以使用交互式 wsadmin 会话输入 wsadmin 命令来管理 WebSphere Application Server 的实例。

语法和参数

&nbsp;&nbsp;&nbsp;&nbsp;要在 wsadmin 中运行命令和脚本，必须在 Qshell 中运行 wsadmin 命令。参见此主题以获取有关 wsadmin 命令的语法和参数的信息。]]></description>
		<author><![CDATA[xueyb]]></author>
		<pubDate>2005-06-07 10:54:00</pubDate>
		</item>
				<item>
		<title><![CDATA[Manifest简化应用的打包和发布]]></title>
		<link>http://blog.pfan.cn/xueyb/1520.html</link>
		<description><![CDATA[发布Java应用程序时你会感到困难？好在Java提供了一系列打包和发布工具，可以显著的简化发布过程


该文章提供了打包Java code的几种方法，我们将会探讨Java manifest 文件，给出用于管理JAR文件所依赖文件、估计跨平台发布所需的CLasspath的合适方法.我也会解释如何使用manifest包版本特性来确认包的兼容性...

什么是JAR文件？

在开发过程中，我们可以直接使用Java class文件来运行程序，但这并不是一个好方式，好在Java 提供了 JAR(Java Archive)文件来提供发布和运行。

jar 文件实际上是class 文件的ZIP压缩存档，这种格式被广泛使用，因此易与使用，有很多中工具可以操作这种格式的文件。也正是因为这个原因，jar文件本身并不能表达所包含应用程序的标签信息。

Manifest 因此得以出现

为了要提供存档的标签信息，jar 文件指定了一个特定目录来存放标签信息：META-INF 目录，其中我们来关注该目录中的MANIFEST.MF文件，他就是JAR的manifest文件，他包含了JAR文件的内容描述，并在运行时向JVM提供应用程序的信息，大多数JAR文件含有一个默认生成的manifest 文件,执行JAR命令或使用zip工具，都可以产生它。

如果是由jar命令产生的 manifest 文件，形如:
Manifest-Version: 1.0
Created-By:1.4.0-beta
(Sun Microsystems Inc.) 


这些信息没甚么用,仅仅告诉我们使用的是1.0的manifest文件,第一行定义manifest的格式，第二行说明使用 SUN 的JDK1.4的jar工具生成该文件，如果manifest文件是由其他 （如ant） 创建的，那将会出现 “Created-By: Ant 1.2” 之类的内容，如果你是自己创建manifest文件，你可以加入自己的一些相关信息.





基础格式
manifest 文件的格式 是很简单的，每一行都是 名－值 对Φ?属性名开头，接着是 &quot;:&quot; ，然后是属性值，每行最多72个字符，如果需要增加，你可以在下一行续行，续行以空格开头，以空格开头的行都会被视为前一行的续行。

所有在开头的属性都是全局的，你也可以定义]]></description>
		<author><![CDATA[xueyb]]></author>
		<pubDate>2005-06-06 17:33:00</pubDate>
		</item>
				<item>
		<title><![CDATA[BAT常用命令]]></title>
		<link>http://blog.pfan.cn/xueyb/1513.html</link>
		<description><![CDATA[echo、@、call、pause、rem(小技巧：用::代替rem)是批处理文件最常用的几个命令，我们就从他们开始学起。 
echo 表示显示此命令后的字符 
echo off 表示在此语句后所有运行的命令都不显示命令行本身 
@与echo off相象，但它是加在每个命令行的最前面，表示运行时不显示这一行的命令行（只能影响当前行）。 
call 调用另一个批处理文件（如果不用call而直接调用别的批处理文件，那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令）。 
pause 运行此句会暂停批处理的执行并在屏幕上显示Press any key to continue...的提示，等待用户按任意键后继续 
rem 表示此命令后的字符为解释行（注释），不执行，只是给自己今后参考用的（相当于程序中的注释）。 

例1：用edit编辑a.bat文件，输入下列内容后存盘为c:\a.bat，执行该批处理文件后可实现：将根目录中所有文件写入 a.txt中，启动UCDOS，进入WPS等功能。 

　　批处理文件的内容为: 　　　　　　　 命令注释： 

　　　　@echo off　　　　　　　　　　　不显示后续命令行及当前命令行
　　　　dir c:\*.* &gt;a.txt　　　　　　　将c盘文件列表写入a.txt 
　　　　call c:\ucdos\ucdos.bat　　　　调用ucdos 
　　　　echo 你好 　　　　　　　　　　 显示&quot;你好&quot; 
　　　　pause 　　　　　　　　　　　　 暂停,等待按键继续 
　　　　rem 准备运行wps 　　　　　　　 注释：准备运行wps 
　　　　cd ucdos　　　　　　　　　　　 进入ucdos目录 
　　　　wps 　　　　　　　　　　　　　 运行wps　　 

批处理文件的参数

批处理文件还可以像C语言的函数一样使用参数（相当于DOS命令的命令行参数），这需要用到一个参数表示符“%”。 

%[1-9]表示参数，参数是指在运行批处理文件时在文件名后加的以空格（或者Tab）分隔的字符串。变量可以从%0到%9，%0表示批处理命令本身，其它参数字符串用%1到%9顺序表示。 

例2：C:根目录下有一批处理文件名为f.bat，内容为：
@echo off
format %1]]></description>
		<author><![CDATA[xueyb]]></author>
		<pubDate>2005-06-06 14:32:00</pubDate>
		</item>
				<item>
		<title><![CDATA[CVS管理员手册]]></title>
		<link>http://blog.pfan.cn/xueyb/695.html</link>
		<description><![CDATA[1、前言： 
&nbsp;&nbsp;&nbsp;&nbsp;CVS（Concurrent Versions System 并发版本系统）是C/S结构的版本管理系统。允许多人同时对一个原代码库（Repository）的文件进行访问、操作。
CVS是“拷贝--修改--合并”的模型。
&nbsp;&nbsp;&nbsp;&nbsp;目前在Linux和Windows下都有不同版本。其官方网站为服务器端：http://www.cvsnt.org 客户端：http://sourceforge.net/projects/cvsgui/ 
&nbsp;&nbsp;&nbsp;&nbsp;本文适合用户CVS管理员和有一定CVS经验的人。

2、安装与配置
&nbsp;&nbsp;&nbsp;&nbsp;本人使用的是CVSNT2.08和WINCVS2.002,服务奇及客户端均为WINXP系统。

&nbsp;&nbsp;&nbsp;&nbsp;a) 服务器端(CVSNT)的安装比较简单。只要注意几点：
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i. 双击Service Control Panel，在Service Status页面，确认2个服务正常和稳定运行。 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ii. 选择Repository页面，点按Add按钮，选择已经准备好的目录作为资源库的根目录即可。在Valid Repository Roots会显示选择的目录，这时会在其目录下面建立CVSRoot目录，这是CVS默认的管理目录（默认模块）。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iii. 选择Advanced页面，一般勾上Use local users for pserver ...（即使用服务器本地用户认证，而非域认证），OK。

&nbsp;&nbsp;&nbsp;&nbsp;b) 客户端(WinCVS)的安装按照默认安装即可。配置注意以下几点：
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i. 菜单Admin=&gt;preferences 选CVS 设置Hom]]></description>
		<author><![CDATA[xueyb]]></author>
		<pubDate>2005-04-23 16:34:00</pubDate>
		</item>
				<item>
		<title><![CDATA[Oracle PL/SQL NLS查询及设置]]></title>
		<link>http://blog.pfan.cn/xueyb/650.html</link>
		<description><![CDATA[在使用ORACLE数据库的时候,常常连上数据库出现乱码的现象出现,原因:客户端的字符串集和数据库的不一直.
要取的数据库的字符集,并把客户端的字符集设置和数据库一直即可.取得的方法:
1.SQL:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select value,parameter from nls_database_parameters where parameter in('NLS_LANGUAGE','NLS_TERRITORY','NLS_CHARACTERSET');
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;依此组装即可,&quot;NLS_LANGUAGE_NLS_TERRITORY.NLS_CHARACTERSET&quot;。
2.创建procedure :
create or replace procedure get_nls is
&nbsp;&nbsp;-- Local variables here
&nbsp;&nbsp;langs varchar2(128) ;
&nbsp;&nbsp;loc varchar2(128);
&nbsp;&nbsp;charset varchar2(128);
begin
&nbsp;&nbsp;-- Test statements here
&nbsp;&nbsp;select value into langs from nls_database_parameters where parameter='NLS_LANGUAGE';
&nbsp;&nbsp;select value into loc from nls_database_parameters where parameter='NLS_TERRITORY';
&nbsp;&nbsp;select value into charset from nls_database_parameters where parameter='NLS_CHARACTERSET';
&nbsp;&nbsp;-- Sure that :set serveroutput on
&nbsp;&nbsp;DBMS_OUTPUT.PUT_LINE(langs||'_'||loc||'.'||charset);
end get_nls;
&]]></description>
		<author><![CDATA[xueyb]]></author>
		<pubDate>2005-04-20 11:36:00</pubDate>
		</item>
		</channel>
</rss>