yargs模块 https://www.npmjs.com/package/yargs https://github.com/yargs/yargs/blob/HEAD/docs/api.md

  1. const { argv } = require('yargs');
  2. console.log(argv);
  3. >cui 123 ajanuw -p=./
  4. { _: [ 123, 'ajanuw' ],
  5. help: false,
  6. version: false,
  7. p: './',
  8. '$0': 'AppData\\Roaming\\npm\\node_modules\\sh\\bin\\create-user-info.js' }

脚本文件 /bin/main.js

  1. #!/usr/bin/env node
  2. console.log(123);

package.json

  1. {
  2. "name": "sh",
  3. "version": "1.0.0",
  4. "description": "",
  5. "main": "main.js",
  6. "scripts": {
  7. "test": "echo \"Error: no test specified\" && exit 1"
  8. },
  9. "author": "",
  10. "license": "ISC",
  11. "bin": {
  12. "r32": "./bin/main.js"
  13. }
  14. }

在脚本根目录执行 npm i -g ./ 或则 npm link测试完后删除npm unlink

r32 执行命令就会出现 123

这是一个返回 随机数的命令

  1. #!/usr/bin/env node
  2. const {
  3. argv
  4. } = require('yargs')
  5. .config({
  6. s: 'c0'
  7. })
  8. .option('all', {
  9. describe: '查看返回字符串类型'
  10. })
  11. .alias('v', 'version')
  12. .help('help')
  13. if (argv.version) {
  14. console.log('1.0.0');
  15. return;
  16. }
  17. if (argv.all) {
  18. console.log(`
  19. --s=c0 默认返回大小写字母和数字 [c1 全大写] [c2 全小写] [c3 全小写]
  20. `);
  21. return;
  22. }
  23. let len = argv._[0] && typeof + argv._[0] === "number" ?
  24. +argv._[0] :
  25. 32
  26. const c0 = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'; // 大小写字母和数字
  27. const c1 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; // 大写
  28. const c2 = 'abcdefghijklmnopqrstuvwxyz'; // 小写
  29. const c3 = '123456789'; // 小写
  30. let c = argv.s; // 默认大小写数字
  31. switch (c) {
  32. case 'c1':
  33. c = c1;
  34. break;
  35. case 'c2':
  36. c = c2;
  37. break;
  38. case 'c3':
  39. c = c3;
  40. break;
  41. default:
  42. c = c0;
  43. break;
  44. }
  45. const random = (a, b) => Math.floor(Math.random() * (b - a + 1) + a);
  46. function randomString32(len, c) {
  47. // 返回随机字符串
  48. const c_len = c.length;
  49. return new Array(len)
  50. .fill()
  51. .reduce((acc) => acc += c[random(0, c_len - 1)], '')
  52. }
  53. const str = randomString32(len, c);
  54. const exec = require('child_process').exec ;
  55. exec(`echo ${str} | clip`, (error, stdout, stderr)=>{
  56. if(error) console.log('复制到粘贴板失败!');
  57. })
  58. console.log(str);
  1. >node .\bin\main.js 6 --s=c3
  2. 842773

node.js 设置脚本命令的更多相关文章

  1. node.js如何制作命令行工具(一)

    之前使用过一些全局安装的NPM包,安装完之后,可以通过其提供的命令,完成一些任务.比如Fis3,可以通过fis3 server start 开启fis的静态文件服务,通过fis3 release开启文 ...

  2. node.js cmd常用命令

    cmd1.c:如果我们想访问c盘,那么我们需要在命令行中输入c:就行了 2.cd..cd..就可以返回上层目录 3.cd mmcd mm即可访问mm文件夹 4.dir如果想查看该文件夹下有哪些文件,则 ...

  3. 微软开放技术发布针对 Mac 和 Linux 的更新版 Azure Node.JS SDK 和命令行工具

    发布于 2013-12-04 作者 Eduard Koller 这次为我们使用Linux 的朋友带来了更多关于部署云上虚拟机的消息.今天,微软开放技术有限公司 (MS Open Tech),想与大家分 ...

  4. 使用node.js编写脚本将JSON数据转换为SQL语句

    安装依赖模块 当node.js脚本在运行的时候,需要很多支持模块,这些模块存储在node_modules文件夹中.该脚本在执行过程中需要使用到fs.string-format两个支持模块,作用分别是: ...

  5. 安装Nginx并为node.js设置反向代理

    最近看了反向代理和正向代理的东西,想到自己的node.js服务器是运行在3333端口的,也没有为他设置反向代理,node.js项目的一些静态文件是完全可以部署在Nginx上,以减少对node.js的请 ...

  6. node.js 设置静态文件托管

    1.在app.js文件中设置静态文件托管 /*应用程序入口文件*/ /*加载express模块*/ var express = require('express'); /*加载模板处理模块*/ var ...

  7. node.js执行shell命令

    nodejs功能强大且多样,不只是可以实现 服务器端 与 客户端 的实时通讯,另一个功能是用来执行shell命令 首先,引入子进程模块 var process = require('child_pro ...

  8. node.js的npm命令常见错误及解决方案

    使用npm命令进行模块安装的时候场出现各种错误,本文总结我所遇到的各种错误,并提供解决方案.(大部分内容为网上收集) 首先使用淘宝 NPM 镜像 大家都知道国内直接使用 npm 的官方镜像是非常慢的, ...

  9. node.js 设置 淘宝 镜像

    npm config set registry "https://registry.npm.taobao.org" npm info underscore (如果上面配置正确这个命 ...

随机推荐

  1. 在数据库繁忙时如何快速有效的关闭MySQL服务

    如果InnoDB_buffer_size参数很大,缓冲区内的脏数据太多,那么关闭MySQL的时候必须把脏数据刷新到磁盘,这个过程有可能是很漫长的,从而导致关闭MySQL服务的时间过长.可以临时设置in ...

  2. Android性能优化-减小APK大小

    前言 用户通常会避免下载比较大的应用,特别是连接到2G和3G网络,或者按流量收费的设备.这篇文章描述了如何减小apk的大小,帮助你让更多的用户下载你的app. 一 理解APK的结构 在讨论如何减小ap ...

  3. hadoop from rookie to ninja - 1. Basic Architecture(基础架构)

    1. Daemons(守护进程) 新老架构 老的: Apache Hadoop 1.x (MRv1)   新的: Apache Hadoop 2.x (YARN)-Yet Another Resour ...

  4. Ubuntu16.04下安装搭配Python3.6相关配置软件方法

    1 安装Python3.6.4 此处推荐直接安装Anaconda3,来实现Python3.6.4的环境配置. Anaconda3下载链接:https://www.anaconda.com/downlo ...

  5. 天猫魔盒1代TMB100E刷机, 以及右声道无声的问题

    这个是在小米盒子1代之后买的, 当时速度比小米盒子快, 除了遥控器比较软, 电池盖不太对得齐以外, 用起来还不错. 但是时间长了之后总是不停自己升级, 自己安装一些应用, 还删不了, 要知道这个盒子的 ...

  6. redhat7.0配置网卡

    1.切换到网卡配置目录: cd /etc/sysconfig/network-scripts 2.编辑网卡信息 如 vim ifcfg-enpos3 TYPE=Ethernet #设备类型 BOOTP ...

  7. easyui-switchbutton js判断是否启动

    <input class="easyui-switchbutton" id="statusId" name="status" onTe ...

  8. arcgis server瓦片行列号计算

    2013-08-01 arcgis server切图时会设置一个原点坐标,如果是经纬度坐标一般默认(x0,y0)=(-400,400)作为切图的起始点,即从这开始算行列号.假设切图的地图某点坐标为x, ...

  9. Python序列化之Json基础

    python的序列化就是将python的基本对象转换为字符串的过程,反之则是反序列化. 序列化类型: -> import json import pickle 序列化定义: 序列化:对象.列表. ...

  10. 如何解决:对应的服务器 tls 为 tls 1.0,小程序要求的TLS版本必须大于等于1.2问题

    微信小程序 TLS 版本必须大于等于1.2问题解决 此问题最近在微信小程序开发中,比较常见. 在解决这个问题之前,我们需要了解一下,当前的系统环境是否支持TLS1.2以上,可以参考一下表格: 请先确认 ...