创建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');
});
正文完