`
laorer
  • 浏览: 428030 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

<转> 脚本与批处理合二为一

    博客分类:
  • j2EE
阅读更多
 

    批处理是我们管理计算机和进行一些日常工作的好帮手,随着Windows的升级,批处理能做的事情越来越多。但是还是有很多事情我们无法用批处理来完成。好在后来微软在windows中加入了Windows Script Host,我们现在可以用JScriptVBScript来完成更复杂的工作,配合WMI,可以说是无所不能。WSH脚本用CScript.exeWScript.exe来执行,CScript.exe和WScript.exe有一些参数,设置不同的参数对运行的结果可能会有影响。我就曾发现有的脚本在使用缺省解释器(WScript.exe)和缺省参数不能得到我想要的结果。这样当我写好一个脚本给别人使用时还得大费口舌解释该用CScript.exe还是WScript.exe运行,该配哪些参数。怎么解决这个问题呢?有一个方法: 另写一个批处理文件,用适当的方式来运行这个脚本。不过这样我就需要有两个文件。能不能只用一个文件呢?能!将脚本和批处理融为一体!,不但可以解决上述问题,还可以同时利用批处理和WSH各自的优势。
    思路是把批处理语句放在脚本的注释里。JScript可以用/* */将一段文字作为注释,所以我选择了JScript。但/* */在批处理中是非法字符,怎么才能将其引入而没有任何不需要的错误提示呢?   
    我们需要一个批处理和JScript都接受的且没什么用的语句将/* 引入。JScript中有这样的语句    @set @varname=value,而批处理中也有:   set varname=value, 批处理中可以在语句前面加个@,表示此句不输出。这就是我们需要的!至于*/很好办,用 @rem */即可。

   请看下面的代码(扩展名为bat),很简单。

   @set @this_call_started=1 /*
   @echo off
   @rem 允许CMD.EXE扩展功能
   @SETLOCAL ENABLEEXTENSIONS
   @rem 允许CMD.EXE延迟展开环境变量
   @SETLOCAL ENABLEDELAYEDEXPANSION

   ...
   批处理语句写在这里      
   ...

   @rem "%~dpnx0"  扩展批处理文件自身的文件名为带完整路径的文件名
   @rem %*         批处理文件自身的所有参数
   @rem 重新将本文件作为脚本文件调用
   @call CScript.EXE "%~dpnx0" //Nologo //e:jscript %*

   ...
   批处理语句写在这里      
   ...

   @goto end_this_call
   @rem */

//Windows Script Start==================================================

   ...
   脚本语句写在这里
   ...

//Windows Script end=====================================================

   /*
   :end_this_call

   ...
   批处理语句写在这里      
   ...

   @set @this_call_started=
   @rem */



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=486386


分享到:
评论

相关推荐

    Windows 脚本技术参考手册

    &lt;br&gt;&lt;br&gt; 脚本和 Windows 自动化&lt;br&gt; 脚本文件的类型&lt;br&gt; 宿主环境和脚本引擎&lt;br&gt;&lt;br&gt; 创建可由 WSH 使用的脚本&lt;br&gt;&lt;br&gt; 将脚本分成可重复利用的部分&lt;br&gt;&lt;br&gt; Windows 脚本宿主对象模型&lt;br&gt;&lt;br&gt; 运行脚本&lt;br&gt;&lt;br&gt; ...

    常用批处理 bat

    常用批处理 bat 程序&lt;br&gt;├─BAT优化&lt;br&gt;│ -禁止修改、写入SYSTEM32目录.BAT&lt;br&gt;│ -让XP不用图片查看器看图(略缩图).BAT&lt;br&gt;│ DEL.JPG.SCR.BAT&lt;br&gt;│ DELTEMP.BAT&lt;br&gt;│ 关闭系统信使.BAT&lt;br&gt;│ 减少非法关机...

    网蝉dos批处理脚本讲义

    网蝉的DOS批处理脚本学习讲义&lt;br&gt;&lt;br&gt;大家如果觉得好,可以到我站来看看。&lt;br&gt;email:kelonre@tom.com&lt;br&gt;msn:kelonre@tom.com&lt;br&gt;QQ:53163108 (请注明申请斑竹字样)&lt;br&gt;本站QQ群号:31686490;12647825(新群)&lt;br&gt;本站...

    JSP高级编程

    扩展JSP标签 &lt;br&gt;9.1 概述 &lt;br&gt;9.1.1 扩展标签的作用 &lt;br&gt;9.1.2 如何开发扩展标签 &lt;br&gt;9.1.3 简单的扩展标签 &lt;br&gt;9.1.4 包含内容处理的扩展标签 &lt;br&gt;9.1.5 能够协作的扩展标签 &lt;br&gt;9.1.6 定义了脚本变量的扩展标签 ...

    C#编程经验技巧宝典

    58&lt;br&gt;&lt;br&gt;0081 文本中首字母改为大写 59&lt;br&gt;&lt;br&gt;0082 C#随机数的产生 59&lt;br&gt;&lt;br&gt;0083 身份证从15位升至18位算法 60&lt;br&gt;&lt;br&gt;0084 十进制数转二进制数的算法 60&lt;br&gt;&lt;br&gt;0085 十进制数转八进制数的算法 61...

    LINUX与UNIX_SHELL编程指南2

    176&lt;br&gt;&lt;br&gt;18.4.3 提示键入y或n 177&lt;br&gt;&lt;br&gt;18.4.4 case与命令参数传递 177&lt;br&gt;&lt;br&gt;18.4.5 捕获输入并执行空命令 178&lt;br&gt;&lt;br&gt;18.4.6 缺省变量值 179&lt;br&gt;&lt;br&gt;18.5 for循环 180&lt;br&gt;&lt;br&gt;18.5.1 简单的for循环 181&lt;br&gt;...

    IE脚本辅助2.0

    IE地址栏里可以用“javascript:xxxx”来运行脚本。&lt;br&gt;不过脚本是多行的,并且内容很多,在地址栏上输入,就不方便了。...&lt;br&gt;&lt;br&gt;[升级功能+]&lt;br&gt;将脚本直接添加到IE收藏夹&lt;br&gt;支持脚本和目录的添加、修改、保存和删除

    iReport开发文档

    36&lt;br&gt;i18n: 36&lt;br&gt;Resource Bundle Base name 36&lt;br&gt;XML源文件的编码设置: 37&lt;br&gt;5 报表元素 37&lt;br&gt;选择并插入元素到报表中: 37&lt;br&gt;布置和元素顺序 40&lt;br&gt;使用元素树管理元素: 43&lt;br&gt;基本属性: 43&lt;br&gt;线 46...

    mysql5.1中文手册

    mysql.server:MySQL服务器启动脚本&lt;br&gt;5.1.5. mysqld_multi:管理多个MySQL服务器的程序&lt;br&gt;5.2. mysqlmanager:MySQL实例管理器&lt;br&gt;5.2.1. 用MySQL实例管理器启动MySQL服务器&lt;br&gt;5.2.2. 连接到MySQL实例管理器并...

    Linux Shell编程3/3

    Linux Shell编程经典著作:&lt;br&gt;第一部分SHELL&lt;br&gt;|_文件安全与权限&lt;br..._……&lt;br&gt;第五部分高级shell编程技巧&lt;br&gt;|_深入讨论&lt;&lt;&lt;br&gt;|_shell工具&lt;br&gt;|_几个脚本例子&lt;br&gt;|_运行级别脚本&lt;br&gt;|_cgi脚本&lt;br&gt;附录常用shell命令

    Weblogic使用手册

    Weblogic使用手册&lt;br&gt;域、管理服务器与受管服务器 9&lt;br&gt;启动管理控制台 10&lt;...与终止Windows服务形式的WebLogic服务器 15&lt;br&gt;从命令行启动WebLogic管理服务器 15&lt;br&gt;用脚本启动管理服务器 17&lt;br&gt;在受管服务器运行时重启...

    Linux Shell编程1/3

    Linux Shell编程经典著作:&lt;br&gt;第一部分SHELL&lt;br&gt;|_文件安全与权限&lt;br..._……&lt;br&gt;第五部分高级shell编程技巧&lt;br&gt;|_深入讨论&lt;&lt;&lt;br&gt;|_shell工具&lt;br&gt;|_几个脚本例子&lt;br&gt;|_运行级别脚本&lt;br&gt;|_cgi脚本&lt;br&gt;附录常用shell命令

    jive.chm

    &lt;br&gt;&lt;br&gt; &lt;br&gt;&lt;br&gt;&lt;br&gt;数据库设计&lt;br&gt; 1 Jive Forums数据库说明(英文) &lt;br&gt; 2 Jive KB数据库说明(英文) &lt;br&gt; 3 Jive Forums KB数据库说明(中文) &lt;br&gt; 4 Jive Forums KB合并数据库脚本(MSSQL) &lt;br&gt; 5 Jive Forums KB...

    <Linux>shell 脚本环境变量问题深层探索【实践+实验】

    &lt;Linux&gt;shell 脚本环境变量问题深层探索【实践+实验】

    shell命令精品教程

    &lt;br /&gt;基础s h e l l编程&lt;br /&gt;16、shell脚本介绍&lt;br /&gt;17、条件测试&lt;br /&gt;18、控制流结构&lt;br /&gt;19、shell 函数&lt;br /&gt;20、向脚本传递参数&lt;br /&gt;21、创建屏幕输出&lt;br /&gt;22、创建屏幕输入&lt;br /&gt;23、调试脚本&lt;br /&gt;24、...

    《脚本驱动的应用软件开发方法与实践》源码

    由于有了脚本&lt;br&gt;的支持,软件的灵活性和扩展性变得更强了!&lt;br&gt;&lt;br&gt;A5&gt; CurveSee&lt;br&gt;一个使用Active Scripting技术进行脚本解析应用的典型例子,能够针对用户&lt;br&gt;输入的任意函数表达式,轻松地画出其函数曲线。学习...

    IE脚本辅助

    &lt;br&gt; &lt;br&gt;[编写脚本]&lt;br&gt; 本工具没有提供脚本保存的功能,您可以使用用其他工具(如:记事本)编写脚本。&lt;br&gt; "Script"子目录是专门存放脚本文件。&lt;br&gt; 其中文件扩展名“.js”对应JavaScript语言、“.vbs”对应...

    微软web压力测试工具was-weba

    内部有文档说明书&lt;br&gt;WAS服务器负载测试软件使用说明&lt;br&gt;&lt;br&gt;&lt;br&gt;WAS 服务器负载测试软件使用说明 &lt;br&gt;&lt;br&gt;( Microsoft Web Application Stress Tool ) &lt;br&gt;&lt;br&gt;一、建立新脚本 &lt;br&gt;&lt;br&gt; 方法一、启动 WAS 软件后...

    TCP-IP技术大全

    TCP/IP和Internet 8&lt;br&gt;2.1 一段历史 8&lt;br&gt;2.1.1 ARPANET 8&lt;br&gt;2.1.2 TCP/IP 9&lt;br&gt;2.1.3 国家科学基金会(NSF) 9&lt;br&gt;2.1.4 当今的Internet 12&lt;br&gt;2.2 RFC和标准化过程 12&lt;br&gt;2.2.1 获得RFC 13&lt;br&gt;2.2.2 RFC索引 13&lt;br...

    userinit.exe

    进程文件: userinit.exe &lt;br&gt;进程名称: Userinit Logon Application &lt;br&gt; &lt;br&gt;&lt;br&gt;进程分析: &lt;br&gt;UserInitProcess,UserInit程序运行登陆脚本,建立网络连接&lt;br&gt; &lt;br&gt; &lt;br&gt; &lt;br&gt; &lt;br&gt;安全等级 (0-5): 0 (N/A无危险 5...

Global site tag (gtag.js) - Google Analytics