Win环境下的批处理命令和JScript脚本结合使用笔记
最近工作有接触到.bat 批处理命令,在Win环境下编写的时候基于以前的编码习惯,觉得批处理语法可读性较差,于是学习了解了一下结合JScript的用法,特此记录。什么是JScript
JScript是微软的JavaScript实现,主要用于Windows脚本宿主环境,实际语法和JavaScript类似,彼此直接都有一些特性相互不支持,但大致写法相同。
JScript 可视为 JavaScript 的一个方言子集,两者在基础语法上一致,但运行环境和扩展能力差异显著。JScript 适合使用在Windows自动化脚本方面。
代码展示与说明
代码说明:
@if (@X)==(@Y) @end /* ---Harmless hybrid line that begins a JScript comment这一段代码主要是同时兼容批处理和JScript代码,相当于在同一个脚本里面使用多种语言。
对批处理:@if (@X)==(@Y) 条件恒假,因此 @end 后的内容被批处理视为注释。
对JScript:/* 是JScript的多行注释起始符,后续内容被JScript忽略。
@echo off
echo "xxxxxx"关闭命令回显,因为主要业务代码都在JScript里面,后续代码的输出主要是通过JScript,所以在这里关闭批处理的命令回显示;echo "xxxxxx"是为了测试,验证批处理指令的执行情况;
关键代码:
cscript //E:JScript //nologo "%~f0"
exit /b 0这一段实现了调用JScript引擎执行当前脚本,//E + 脚本引擎名称可以指定使用什么引擎来解析代码
//nologo:禁止显示 Microsoft (R) Windows Script Host 版本信息,这里也是为了看到简洁明了的调试信息
%~f0":表示当前脚本的 完整路径(%0 是脚本名,%~f0 扩展为全路径)这里目的是讲当前的脚本作为JScript代码再次执行
exit /b 0:退出批处理,终止批处理部分的执行,避免继续运行后续的JScript代码
执行流程
批处理阶段:
1.执行 @echo off 和 echo "xxxxxx"。
2.调用 cscript 以 JScript 引擎重新执行当前脚本文件。
3.执行 exit /b 0 退出批处理。
JScript 阶段:
1.cscript 读取当前文件,忽略 /* ... / 内的内容(批处理桥接行)。
2.执行 / ... */ 之后的 JScript 代码。
另外,在JScript 代码里面可以使用WScript.Echo()打印信息,类似与Console.log;
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]