简介
node2bat 是一个可以将 NodeJS 脚本编译为 Windows 批处理脚本的工具。编译后的批处理不再依赖 NodeJS,双击可直接运行。你可以使用 NodeJS 的 API 来编写一些轻量级的自动化 Windows 批处理脚本。实现原理
windows 中自带了 javascript 引擎支持 jscript,并且可以调用一些本地 API,所以 node2bat 便是使用 jscript 封装了一层 nodejs 的 api,然后打包到 bat 脚本中。安装
先安装 NodeJS 与 npm,然后执行:$ npm install node2bat -g
使用
$ node2bat <file>
<file>
为 node 脚本,只支持 utf-8 编码运行示例
源码 test 目录是一个演示例子,其中 includeHTML.js 是基于 NodeJS 编写的自动化脚本,它的用途是给页面制作人员批量更新局部模板的。这个脚本里面用到了 NodeJS 的文件与路径处理,我们可以编译 includeHTML.js 为 bat 文件,这样用户拿到我们的 bat 文件就可以直接双击运行了,无需安装 NodeJS 与学习命令行。
切换到源码目录,运行:
$ node2bat test/includeHTML.js
运行完毕后会立刻生成独立的 includeHTML.bat,你也可以双击打开它试用一下。JS API
node2bat v0.0.1 支持的 JS API 是 NodeJS API 的子集,包含基本的文件与路径操作:全局变量
- require(id)
(注意:不支持外部模块)
- process.argv
- process.env
- process.exit([code])
- process.cwd()
- process.stdout.write(message)
- console.log(message)
- __filename
- __dirname
注:使用 process.argv.slice(2) 可返回拖拽到批处理程序图标上后所有的文件列表
内置模块
- File System
- fs.rename(oldPath, newPath, callback)
- fs.renameSync(oldPath, newPath)
- fs.stat(path, callback)
- fs.statSync(path)
- fs.unlink(path, callback)
- fs.unlinkSync(path)
- fs.rmdir(path, callback)
- fs.rmdirSync(path)
- fs.mkdir(path, [mode], callback)
- fs.mkdirSync(path, [mode])
- fs.readFile(filename, [options], callback)
- fs.readFileSync(filename, [options])
- fs.writeFile(filename, data, [options], callback)
- fs.writeFileSync(filename, data, [options])
- fs.exists(path, callback)
- fs.existsSync(path)
- Path
开源节流
正如您若见,这是一个奇葩的项目,如果有兴趣可参与进来将更多的 NodeJS 特性在 node2bat 上实现.from https://github.com/aui/node2bat