node环境快设置快捷命令

80次阅读
没有评论
创建bat 内容如下,
chcp 65001
@echo off
start cmd /k "cd /d D:1kaifahuanjingdockerwnmpnginxhtmlzhsq_huodopublicv2&node simplifyCommand.js 3 4"
#start powershell -noexit -command "cd D:1kaifahuanjingdockerwnmpnginxhtmlzhsq_huodopublicv2; node simplifyCommand.js"


新建simplifyCommand.js内容如下,

const readline = require('readline');
const { exec } = require('child_process');

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});
const commands = {
    //常用命令
    '00': {show:true, cmd: 'shutdown -s -f -t 10', description: '关机' },
    '01': {show:true, cmd: 'shutdown /r /t 0', description: '重启' },
    '1': {show:true, cmd: 'start cmd /k "cd /d D:\vue-product\china-drone.com.cn__pc&npm run serve"',
           description: '运行vue无人机展项目' },
    '2': {show:true, cmd: 'start cmd /k "cd /d D:\vue-product\china-drone.com.cn__pc&&npm run build&&exit"',
        description: '打包vue无人机展项目' },
    '3': {show:true, cmd: 'start cmd /k "cd /d D:\vue-product\china-drone.com.cn__pc&npm run serve"',
        description: '运行vue安博会展项目' },
    '4': {show:true, cmd: 'start cmd /k "cd /d D:\vue-product\china-drone.com.cn__pc&&npm run build&&exit"',
        description: '打包vue安博会展项目' },
    '5': {show:true, cmd: 'start /d "C:\Program Files\Google\Chrome\Application" chrome.exe',
        description: '打开谷歌浏览器' },
    '6': {show:true, cmd: 'start /d "D:\weixin\Tencent\WeChat" WeChat.exe',
        description: '打开微信' },
    '7': {show:true, cmd: 'start cmd /k "cd /d D:\1kaifahuanjing\docker\wnmp\nginx\html\zhsq_huodo\public\v2&npm run dev"',
        description: '打开静态项目' },
    '8': {show:true, cmd: 'start /d "D:\1kaifahuanjing\PhpStorm_2021.3_Portable\bin\" phpstorm64.exe',
        description: '打开phpstrom' },
    '9': {show:true, cmd: 'start "" "C:\Program Files\Docker\Docker\Docker Desktop.exe"',
        description: '打开Docker' },
    '10': {show:true, cmd: 'mstsc /v:192.168.3.69 /span',
        description: '连接另一台主机' },
    '11': {show:true, cmd: 'calc',
        description: '计算机' },
    '12': {show:true, cmd: 'start https://www.baidu.com/s?wd={input1}',
        description: '百度搜索' },
    '13': {show:true, cmd: 'start http://{input1}',
        description: '打开网址' },
    '14': {show:true, cmd: 'start http://linyue.work/',
        description: '我的博客' },

    //系统常用命令
    '21': {show:true, cmd: 'ipconfig', description: '显示 IP 配置' },
    '22': {show:true, cmd: 'ipconfig /flushdns', description: '刷新 DNS 缓存' },
    '23': {show:true, cmd: 'systeminfo', description: '显示系统信息' },
    '24': {show:false, cmd: 'tasklist', description: '显示当前运行的进程' },
    '25': {show:false, cmd: 'netstat -ano', description: '显示网络连接和端口信息' },
    '26': {show:false, cmd: 'arp -a', description: '显示 ARP 缓存' },
    '27': {show:false, cmd: 'hostname', description: '显示计算机主机名' },
    '28': {show:false, cmd: 'net user', description: '显示本地用户账户信息' },
    '29': {show:false, cmd: 'net localgroup', description: '显示本地用户组信息' },
    '30': {show:false, cmd: 'net accounts', description: '显示本地账户策略信息' },
    '31': {show:false, cmd: 'net share', description: '显示本地共享资源信息' },
    '32': {show:false, cmd: 'net session', description: '显示当前会话信息' },
    '33': {show:false, cmd: 'net use', description: '显示当前网络连接信息' },
    '34': {show:false, cmd: 'net view', description: '显示网络中计算机列表' },
    '35': {show:false, cmd: 'systeminfo | findstr /B /C:"System Boot Time"', description: '显示系统启动时间' },
    '36': {show:false, cmd: 'systeminfo | findstr /B /C:"BIOS Version"', description: '显示 BIOS 版本' },
    '37': {show:false, cmd: 'systeminfo | findstr /B /C:"System Manufacturer"', description: '显示系统制造商' },
    '38': {show:false, cmd: 'systeminfo | findstr /B /C:"System Model"', description: '显示系统型号' },
    '39': {show:false, cmd: 'systeminfo | findstr /B /C:"Processor(s)"', description: '显示处理器信息' },
    '40': {show:false, cmd: 'systeminfo | findstr /B /C:"Total Physical Memory"', description: '显示总物理内存大小' },
    '41': {show:false, cmd: 'systeminfo | findstr /B /C:"Available Physical Memory"', description: '显示可用物理内存大小' },
    '42': {show:false, cmd: 'systeminfo | findstr /B /C:"Virtual Memory: Max Size"', description: '显示虚拟内存最大值' },
    '43': {show:false, cmd: 'systeminfo | findstr /B /C:"Virtual Memory: Available"', description: '显示可用虚拟内存大小' },
    '44': {show:false, cmd: 'systeminfo | findstr /B /C:"Virtual Memory: In Use"', description: '显示正在使用的虚拟内存大小' },
    '45': {show:false, cmd: 'systeminfo | findstr /B /C:"Hyper-V Requirements"', description: '显示 Hyper-V 要求' },
    '46': {show:false, cmd: 'systeminfo | findstr /B /C:"Windows Directory"', description: '显示 Windows 目录' },
    '47': {show:false, cmd: 'systeminfo | findstr /B /C:"System Directory"', description: '显示系统目录' },
    '48': {show:false, cmd: 'systeminfo | findstr /B /C:"Boot Device"', description: '显示启动设备' },
    '49': {show:false, cmd: 'systeminfo | findstr /B /C:"Locale"', description: '显示区域设置信息' },
    '50': {show:false, cmd: 'systeminfo | findstr /B /C:"Time Zone"', description: '显示时区信息' },
    '51': {show:false, cmd: 'driverquery', description: '显示当前系统驱动程序信息' },
    '52': {show:false, cmd: 'fsutil fsinfo drives', description: '显示系统中的逻辑驱动器' },
    '53': {show:false, cmd: 'chkdsk', description: '检查磁盘状态' },
    '54': {show:false, cmd: 'sfc /scannow', description: '扫描并修复系统文件' },
    '55': {show:false, cmd: 'wmic qfe list', description: '列出所有安装的更新和补丁程序' },
    '56': {show:false, cmd: 'wmic product get name', description: '显示安装的软件列表' },
    '57': {show:false, cmd: 'wmic startup list full', description: '显示系统启动项' },
    '58': {show:false, cmd: 'systeminfo | findstr /B /C:"Network Adapter"', description: '显示网络适配器信息' },
    '59': {show:false, cmd: 'tasklist /svc', description: '显示进程及其服务信息' },
    '60': {show:false, cmd: 'bcdedit', description: '显示或修改启动配置数据' },
    '61': {show:false, cmd: 'schtasks', description: '显示或配置计划任务' },
    '62': {show:false, cmd: 'powercfg /batteryreport', description: '生成电池报告' },
    '63': {show:false, cmd: 'powercfg /energy', description: '分析系统能耗' },
    '64': {show:false, cmd: 'powercfg /hibernate on', description: '启用休眠模式' },
    '65': {show:false, cmd: 'powercfg /sleepstudy', description: '生成睡眠研究报告' },
    '66': {show:false, cmd: 'powercfg /lastwake', description: '显示最近唤醒计算机的设备' },
    '67': {show:false, cmd: 'powercfg /devicequery wake_armed', description: '显示可以唤醒计算机的设备' },
    '68': {show:false, cmd: 'powercfg /requests', description: '显示导致系统无法进入睡眠状态的请求' },
    '69': {show:false, cmd: 'powercfg /batteryreport /output "C:\battery_report.html"', description: '生成电池报告并保存为 HTML 文件' },
    '70': {show:false, cmd: 'powercfg /query', description: '显示系统电源配置信息' },
    // 可以继续添加其他命令
};

function executeCommand(command) {

    exec(`chcp 65001 && ${command}`, (error, stdout, stderr) => {
        if (error) {
            console.error(`命令执行错误:${error}`);
            console.error(`错误信息:${stderr}`);
        } else {
            console.log(`n${stdout}`);
            console.log(`命令${command}执行成功n`);
        }
    });
    // exec(`powershell.exe -Command 'chcp 65001 ; ${command}'`, (error, stdout, stderr) => {
    //     if (error) {
    //         console.error(`命令执行错误:${error}`);
    //         console.error(`错误信息:${stderr}`);
    //     } else {
    //         console.log(`n${stdout}`);
    //         console.log(`命令 ${command} 执行成功n`);
    //     }
    // });
    //延时10秒后执行命令
    setTimeout(() => {
        askForCommand();
    }, 10000);
}
function displayAvailableCommands() {
    let message = '请输入对应数字执行相应命令:n';
    let keyColor = 'x1b[31m'; // 红色
    let evenDescriptionColor = 'x1b[32m'; // 绿色
    let oddDescriptionColor = 'x1b[36m'; // 浅蓝色
    let resetColor = 'x1b[0m'; // 重置颜色

    for (const key in commands) {
        if (commands[key].show !== false) {
            // 根据key是单数还是双数来设置描述的颜色
            let descriptionColor = parseInt(key) % 2 === 0 ? evenDescriptionColor : oddDescriptionColor;
            // 添加颜色的key和描述
            message += `${keyColor}${key}${resetColor}. ${descriptionColor}${commands[key].description}${resetColor}`;
            // 添加换行符,每4个命令换一行
            if (parseInt(key) % 4 === 0) {
                message += 'n';
            }
        }
    }

    console.log(message);
}

function askForCommand() {
    displayAvailableCommands();
    rl.question('', (input) => {

        input = input.split(' ');
        const selectedCommand = commands[input[0]];
        if (selectedCommand) {
            let dynamicCmd = selectedCommand.cmd;
           //长度大于1,则替换占位符
            if (input.length > 1) {
                input.forEach((value, index) => {
                    dynamicCmd = dynamicCmd.replace(new RegExp(`{input${index}}`, 'g'), value || '');
                });
            }

            executeCommand(dynamicCmd);
        } else {
            console.log(`未识别的数字或命令,执行命令本身n`);
            executeCommand(input);
        }

    });
}
askForCommand();

//接收到用户输入的参数
const args = process.argv.slice(2);
if (args.length > 0) {
    for (const arg of args) {
        executeCommand(commands[arg].cmd);
 }
}

//定时任务
const schedule = require('node-schedule');
// 每天早上10点执行命令
schedule.scheduleJob('0 10 * * *', function(){
    // 在这里写你想要执行的任务逻辑
    executeCommand('msg * 抢红包');
});

// 每天早上11点40执行命令
schedule.scheduleJob('40 11 * * *', function(){
    // 在这里写你想要执行的任务逻辑
    executeCommand('msg * 去吃饭咯');
});



//下班前5点55分执行命令
schedule.scheduleJob('55 17 * * *', function(){
    // 在这里写你想要执行的任务逻辑
    executeCommand('msg * get off work');
});

//下班关机
schedule.scheduleJob('* 18 * * *', function(){
    // 在这里写你想要执行的任务逻辑
    executeCommand('shutdown -s -t 0');
});
正文完
 
评论(没有评论)