`
laorer
  • 浏览: 437085 次
  • 性别: 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;│ 减少非法关机...

    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...

    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...

    wap文档

    &lt;br&gt;├─第8章 WML Script脚本程序设计&lt;br&gt;│ &lt;br&gt;├─第8章 WML Script脚本程序设计(2)&lt;br&gt;│ &lt;br&gt;├─第9章 WML Script库及库函数&lt;br&gt;│ &lt;br&gt;├─第9章 WML Script库及库函数(2)&lt;br&gt;│ &lt;br&gt;├─WAP构架与测试方案...

    dos 批处理文件集锦

    这些批处理代码是本人在中国DOS联盟论坛学习批处理期间收集/编写的经典代码(至少本人认为是经典),绝大部分来源于中国DSO联盟论坛,少量来源...&lt;br&gt;&lt;br&gt; &lt;br&gt;&lt;br&gt;&lt;br&gt; DOS批处理 & 脚本技术(批处理室) 前版主:namejm

    MSSQL数据库查看器

    &lt;3&gt;、建表脚本 &lt;4&gt;、表字段相关信息 &lt;5&gt;、表内数据前100条 &lt;6&gt;、存储过程脚本 &lt;7&gt;、过程参数列表 &lt;8&gt;、数据库基本操作(分离、附加、备份、还原) &lt;9&gt;、对象相关性(未完成,因为懒) &lt;10&gt;、关键字加色显示

    maven+bat打包

    这里,`&lt;phase&gt;package&lt;/phase&gt;`表示在打包阶段执行批处理脚本。当运行`mvn package`命令时,Maven会自动调用`zip.bat`。 至于`zip_bat.zip`,这可能是批处理脚本的压缩版,可能包含了整个自动化打包过程的脚本和...

    ASP在线编辑器,ASP.NET在线编辑器,PHP在线编辑器,JSP在线编辑器.html在线编辑器,在线网页编辑器

    ASP在线编辑器,ASP.NET在线编辑器,PHP在线编辑器,JSP在线编辑器.html在线编辑器,在线网页编辑器&lt;br&gt;&lt;br&gt;通用在线编辑器Webeditor&lt;br&gt;&lt;br&gt; &lt;br&gt;1、修改编辑器大小在:&lt;br&gt; &lt;br&gt;editor.html里editor.editorWidth = 780...

    配置管理工具VSS 备份批处理脚本

    本文将主要围绕“配置管理工具VSS的备份批处理脚本”这一主题,详细介绍如何创建和使用批处理脚本来自动化VSS的备份过程。 首先,我们需要理解批处理脚本的概念。批处理文件(通常以.bat为扩展名)是Windows操作...

    批处理入门学习——一种快捷方式

    `&lt;Call&gt;`命令在批处理中用于调用另一个批处理程序。这使得在主批处理文件中能够执行其他批处理文件的命令,而不会中断当前批处理文件的流程。一旦子批处理文件执行完毕,控制权会返回到原始批处理文件,继续执行后续...

    Linux下通用的shell脚本 执行批处理

    Linux下通用的shell脚本 执行批处理

    java打包jar、第三方jar包、制作成.bat批处理

    &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt; &lt;artifactId&gt;maven-jar-plugin&lt;/artifactId&gt; &lt;version&gt;3.2.0&lt;/version&gt; &lt;configuration&gt; &lt;archive&gt; &lt;manifest&gt; &lt;addClasspath&gt;true&lt;/addClasspath&gt; ...

    批处理添加windows凭证

    使用批处理文件时,确保正确地替换脚本中的占位符(如`&lt;server&gt;`,`&lt;username&gt;`和`&lt;password&gt;`),以适应实际的服务器名称和凭证信息。此外,安全问题也不容忽视,批处理文件应妥善保护,避免未授权的访问,因为它们...

    BAT批处理脚本-文件相关操作-把文本文件转化成网页格式.zip

    在IT行业中,批处理脚本是一种非常实用的自动化工具,特别是在Windows操作系统环境下,BAT脚本被广泛用于执行一系列命令行操作。本压缩包文件“BAT批处理脚本-文件相关操作-把文本文件转化成网页格式.zip”包含了将...

    大量批处理脚本和教程,高手编写的批处理脚本和批处理教程

    7. **批处理与编程语言的结合**:了解如何在批处理脚本中调用其他编程语言(如Python、VBScript)的脚本,以扩展批处理的功能。 8. **脚本优化**:学习如何编写更高效、更易读的批处理脚本,包括错误处理机制、代码...

    bat+sqlcmd 通过参数形式调用任意存储过程的办法

    其中,`&lt;ServerName&gt;`是SQL Server实例的名称,`&lt;DatabaseName&gt;`是你要操作的数据库,`&lt;Username&gt;`和`&lt;Password&gt;`是连接数据库所需的凭据,`&lt;SchemaName&gt;`是存储过程所在的架构,`&lt;StoredProcedureName&gt;`是存储过程...

    Springboot 项目打包,配置和依赖包分开 启动批处理文件(linux和windows)

    &lt;artifactId&gt;spring-boot-maven-plugin&lt;/artifactId&gt; &lt;version&gt;${spring-boot.version}&lt;/version&gt; &lt;executions&gt; &lt;execution&gt; &lt;goals&gt; &lt;goal&gt;repackage&lt;/goal&gt; &lt;/goals&gt; &lt;/execution&gt; &lt;/executions&gt; &lt;/...

    批处理启动eclipse

    无法设置java_home的时候使用这个bat来启动eclipse吧。&lt;br&gt;&lt;br&gt;不要关闭那个命令行...&lt;br&gt;&lt;br&gt;@echo off&lt;br&gt;@echo 使用指定的jdk启动eclipse..&lt;br&gt;@echo 使用前先修改这个脚本指定JAVA_RUN和ECLIPSE_RUN文件目录&lt;br&gt;

    window脚本下批处理

    批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理。批处理文件的扩展名为bat 。目前比较常见 的批处理包含两类:DOS批处理和PS批处理。PS批处理是基于强大的图片编辑软件Photoshop的,...

Global site tag (gtag.js) - Google Analytics