登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
博客
发1篇日志+1圆
记录
发1条记录+2圆币
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
VIP网盘
VIP申请
网盘
联系我们
道具
勋章
任务
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
安全
›
Win环境下的批处理命令和JScript脚本结合使用笔记 ...
Win环境下的批处理命令和JScript脚本结合使用笔记
[ 复制链接 ]
羽桑
2025-6-11 15:25:48
最近工作有接触到.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;
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
业界
签约作者
程序园优秀签约作者
发帖
羽桑
2025-6-11 15:25:48
关注
0
粉丝关注
15
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
敖可
9984
黎瑞芝
9990
杭环
9988
4
猷咎
9988
5
凶契帽
9988
6
接快背
9988
7
氛疵
9988
8
恐肩
9986
9
虽裘侪
9986
10
里豳朝
9986
查看更多