批处理是我们管理计算机和进行一些日常工作的好帮手,随着Windows的升级,批处理能做的事情越来越多。但是还是有很多事情我们无法用批处理来完成。好在后来微软在windows中加入了Windows Script Host,我们现在可以用JScript或VBScript来完成更复杂的工作,配合WMI,可以说是无所不能。WSH脚本用CScript.exe或WScript.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
相关推荐
<br><br> 脚本和 Windows 自动化<br> 脚本文件的类型<br> 宿主环境和脚本引擎<br><br> 创建可由 WSH 使用的脚本<br><br> 将脚本分成可重复利用的部分<br><br> Windows 脚本宿主对象模型<br><br> 运行脚本<br><br> ...
常用批处理 bat 程序<br>├─BAT优化<br>│ -禁止修改、写入SYSTEM32目录.BAT<br>│ -让XP不用图片查看器看图(略缩图).BAT<br>│ DEL.JPG.SCR.BAT<br>│ DELTEMP.BAT<br>│ 关闭系统信使.BAT<br>│ 减少非法关机...
网蝉的DOS批处理脚本学习讲义<br><br>大家如果觉得好,可以到我站来看看。<br>email:kelonre@tom.com<br>msn:kelonre@tom.com<br>QQ:53163108 (请注明申请斑竹字样)<br>本站QQ群号:31686490;12647825(新群)<br>本站...
扩展JSP标签 <br>9.1 概述 <br>9.1.1 扩展标签的作用 <br>9.1.2 如何开发扩展标签 <br>9.1.3 简单的扩展标签 <br>9.1.4 包含内容处理的扩展标签 <br>9.1.5 能够协作的扩展标签 <br>9.1.6 定义了脚本变量的扩展标签 ...
58<br><br>0081 文本中首字母改为大写 59<br><br>0082 C#随机数的产生 59<br><br>0083 身份证从15位升至18位算法 60<br><br>0084 十进制数转二进制数的算法 60<br><br>0085 十进制数转八进制数的算法 61...
176<br><br>18.4.3 提示键入y或n 177<br><br>18.4.4 case与命令参数传递 177<br><br>18.4.5 捕获输入并执行空命令 178<br><br>18.4.6 缺省变量值 179<br><br>18.5 for循环 180<br><br>18.5.1 简单的for循环 181<br>...
IE地址栏里可以用“javascript:xxxx”来运行脚本。<br>不过脚本是多行的,并且内容很多,在地址栏上输入,就不方便了。...<br><br>[升级功能+]<br>将脚本直接添加到IE收藏夹<br>支持脚本和目录的添加、修改、保存和删除
36<br>i18n: 36<br>Resource Bundle Base name 36<br>XML源文件的编码设置: 37<br>5 报表元素 37<br>选择并插入元素到报表中: 37<br>布置和元素顺序 40<br>使用元素树管理元素: 43<br>基本属性: 43<br>线 46...
mysql.server:MySQL服务器启动脚本<br>5.1.5. mysqld_multi:管理多个MySQL服务器的程序<br>5.2. mysqlmanager:MySQL实例管理器<br>5.2.1. 用MySQL实例管理器启动MySQL服务器<br>5.2.2. 连接到MySQL实例管理器并...
Linux Shell编程经典著作:<br>第一部分SHELL<br>|_文件安全与权限<br..._……<br>第五部分高级shell编程技巧<br>|_深入讨论<<<br>|_shell工具<br>|_几个脚本例子<br>|_运行级别脚本<br>|_cgi脚本<br>附录常用shell命令
Weblogic使用手册<br>域、管理服务器与受管服务器 9<br>启动管理控制台 10<...与终止Windows服务形式的WebLogic服务器 15<br>从命令行启动WebLogic管理服务器 15<br>用脚本启动管理服务器 17<br>在受管服务器运行时重启...
Linux Shell编程经典著作:<br>第一部分SHELL<br>|_文件安全与权限<br..._……<br>第五部分高级shell编程技巧<br>|_深入讨论<<<br>|_shell工具<br>|_几个脚本例子<br>|_运行级别脚本<br>|_cgi脚本<br>附录常用shell命令
<br><br> <br><br><br>数据库设计<br> 1 Jive Forums数据库说明(英文) <br> 2 Jive KB数据库说明(英文) <br> 3 Jive Forums KB数据库说明(中文) <br> 4 Jive Forums KB合并数据库脚本(MSSQL) <br> 5 Jive Forums KB...
<Linux>shell 脚本环境变量问题深层探索【实践+实验】
<br />基础s h e l l编程<br />16、shell脚本介绍<br />17、条件测试<br />18、控制流结构<br />19、shell 函数<br />20、向脚本传递参数<br />21、创建屏幕输出<br />22、创建屏幕输入<br />23、调试脚本<br />24、...
由于有了脚本<br>的支持,软件的灵活性和扩展性变得更强了!<br><br>A5> CurveSee<br>一个使用Active Scripting技术进行脚本解析应用的典型例子,能够针对用户<br>输入的任意函数表达式,轻松地画出其函数曲线。学习...
<br> <br>[编写脚本]<br> 本工具没有提供脚本保存的功能,您可以使用用其他工具(如:记事本)编写脚本。<br> "Script"子目录是专门存放脚本文件。<br> 其中文件扩展名“.js”对应JavaScript语言、“.vbs”对应...
内部有文档说明书<br>WAS服务器负载测试软件使用说明<br><br><br>WAS 服务器负载测试软件使用说明 <br><br>( Microsoft Web Application Stress Tool ) <br><br>一、建立新脚本 <br><br> 方法一、启动 WAS 软件后...
TCP/IP和Internet 8<br>2.1 一段历史 8<br>2.1.1 ARPANET 8<br>2.1.2 TCP/IP 9<br>2.1.3 国家科学基金会(NSF) 9<br>2.1.4 当今的Internet 12<br>2.2 RFC和标准化过程 12<br>2.2.1 获得RFC 13<br>2.2.2 RFC索引 13<br...
进程文件: userinit.exe <br>进程名称: Userinit Logon Application <br> <br><br>进程分析: <br>UserInitProcess,UserInit程序运行登陆脚本,建立网络连接<br> <br> <br> <br> <br>安全等级 (0-5): 0 (N/A无危险 5...