最近工作有接触到.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;

Win环境下的批处理命令和JScript脚本结合使用笔记的更多相关文章

  1. Win环境下Oracle小数据量数据库的物理备份

    Win环境下Oracle小数据量数据库的物理备份 环境:Windows + Oracle 单实例 数据量:小于20G 重点:需要规划好备份的路径,建议备份文件和数据库文件分别存在不同的存储上. 1.开 ...

  2. 在Win环境下配置java的环境进行开发步骤

    1.下载官方JDK,网址如下 http://www.oracle.com/technetwork/java/javase/downloads/index.html

  3. Win环境下的文件读写

    在win环境下,有许多方法可以对文件进行读写操作,如MFC 中的CFile类,及一些开源的项目如QT中的QFile.开源的好得是可以多平台,而MFC只是微软自家的东西,对于想写跨平台的人,最好不用MF ...

  4. win64环境下使用curl命令

    想在windows环境下使用curl命令,其实很简单,简单配置如下: 工具下载 在官网下载工具包:https://curl.haxx.se/download.html 我这里下载的是zip版本的,下载 ...

  5. 解决在win系统下使用DOS命令开启TensorBoard的问题及方法步骤

    解决在win系统下使用DOS命令开启TensorBoard的问题及方法步骤: TensorBoard是TensorFlow下的一个可视化的工具,能够帮助研究者们可视化训练大规模神经网络过程中出现的复杂 ...

  6. win 环境下 node.js环境变量

     在win 环境下 node.js环境变量有两种情况:  (1)开发环境(development):开发环境是程序猿们专门用于开发的服务器,配置可以比较随意, 为了开发调试方便,一般打开全部错误报告. ...

  7. win环境下安装配置openCV-4.3.0

    win环境下安装openCV-4.3.0 首先下载 推荐国内镜像 官网太太太慢了 附上 下载地址 下载之后打开exe解压到目录都是常规操作 环境变量的配置 依次打开到系统变量的path 新建一个路径为 ...

  8. Windows环境下使用Linux命令

    1.说明 如何在Windows环境下使用Linux命令, 这是一个屡见不鲜的问题, 而且已经有很多解决方法, 下面仅推荐几个我觉得好用的工具, 这些工具可能就是我们常用的软件, 而且已经在Window ...

  9. Windows环境下Oracle数据库的自动备份脚本

    批处理文件(.bat) @echo off echo ================================================ echo  Windows环境下Oracle数据 ...

  10. Windows环境下Oracle数据库的自动备份脚本自动删除30天前的备份

    @echo off echo ================================================ echo Windows环境下Oracle数据库的自动备份脚本 echo ...

随机推荐

  1. docker-daemon配置

    { "api-cors-header":"", ------在引擎API中设置CORS标头 "authorization-plugins": ...

  2. Qwen2ForSequenceClassification文本分类实战和经验分享

    本文主要使用Qwen2ForSequenceClassification实现文本分类任务. 文章首发于我的知乎:https://zhuanlan.zhihu.com/p/17468021019 一.实 ...

  3. c# 判断当前用户是否是管理员权限启动应用程序。

    . using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; u ...

  4. w3cschool-Hive 教程

    https://www.w3cschool.cn/hive_manual/ 一.简述 HiveQL是一种声明式语言,用户提交查询,而Hive会将其转换成MapReduce job,如下图.一般来说大部 ...

  5. canal源码分析简介-2

    3.0 server模块 server模块的核心接口是CanalServer,其有2个实现类CanalServerWithNetty.CanalServerWithEmbeded.关于CanalSer ...

  6. MySQL如果数据存在则更新,不存在则插入

    如果数据存在则更新,不存在则插入,MySQL有duplicate.replace into.replace三种方式如何更新数据? insert ignore into 又是如何插入数据的呢? 准备表和 ...

  7. 新型冠状病毒全国疫情API接口

    一.新浪提供的接口地址:https://interface.sina.cn/news/wap/fymap2020_data.d.json 二.163提供的接口地址:官方展示: https://news ...

  8. Docker开发实践:在windows 7中使用Docker for windows访问GUI

    1 安装Docker for windows 1.1下载Docker for windows 从下面的网址中下载Docker for windows并安装. https://www.docker.co ...

  9. matlib:图像旋转-缩放

    需求 使用MATLAB尝试完成一个自定义的图像攻击软件,功能描述: 1)根据输入参数,完成旋转功能 2)根据输入参数,完成缩放功能 开始 旋转 参数:参数为正,顺时针旋转:参数为负,逆时针旋转 主要代 ...

  10. dart变量类型详解

    1==> 三个单引号的作用 String Str = ''' qijqowjdo 哈哈嘿嘿黑 '''; print(Str); 这样使用三个单引号,输出来换行:方便我们观看而已哈 2==> ...