前言
极简快捷一直是我学习路上追求的东西,奈何每逢期末大作业那要打开的东西也太多了,比如 javaee 的的作业,得先开启 mysql数据库,然后打开 IDEA,前端还要打开 Vue。php大作业打开 PHPStorm,还有 phpstudy之类的。写后端测试端口还要打开 postman。emmm好麻烦,虽然 win10 的磁贴确实拯救了我的桌面,但是每次写作业都要手动去找一大堆东西。由于当时比较忙我的解决方式也是简单粗暴,直接不关机…
嗯但是不关机也不是长远之计,毕竟损耗电脑性能,于是身为懒狗只能找找懒人的办法,一直渴望着用极少的操作打开一系列东西。于是 bat 便出现在了我的视野里。
正文
首先,bat 是什么? bat 叫做批处理文件,本质和 cmd 的控制台一样,输入命令来执行。【灵机一动】 那我们是不是可以把想要的东西全部写成命令,然后启动就好了!细想之后,发现需要用的命令有两大类。一类是打开某个程序,一类是启动某些服务,还有就是模拟鼠标键盘的操作。
启动系统服务
这一类的 bat 用起来就会很方便,为了提高系统运行速度和 cpu 利用率,很多服务一般不会一直开启,用啥开啥,不会浪费系统资源,我们只需要学习一次这些服务的启动命令,后续打开全部交给 bat 就好了。(毕竟那种刚接触一个新技术时的手忙脚乱我是深有体会,忘东忘西)。
首先试试启动数据库服务:
先在桌面建一个记事本 然后输入平时的启动数据库命令 net start mysql 另存为为 bat 格式,然后双击。
pause
net start mysql
pause
pause的意思就是执行到这暂停,需要用户随便数点什么才能进行。 然后… emmm好的没事了,这显然是没有权限,所以我们经过百度,找到了以管理员权限运行的语句
@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"
也没必要背下,需要在哪用就在直接复制。 于是有了新版本:
@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"
net start mysql
pause
然后保存之后双击,成功啦!!
启动应用程序
这个对于懒狗就更友好了,抛开敲代码,就算玩游戏有些时候也要打开很多东西,steam,ce(单机游戏懂得都懂),通讯工具(联机饥荒,mc啥的)嗯,这时候写成一个 bat 那不要太爽,双击完成之后就可以去取冰饮料了,回来的时候全部打开完毕!(极度舒适)
我这里就拿启动 linux 虚拟机为例子,毕竟这东西不常用不想放在磁贴,打开还得找到 VMWare 进去还要选择 mac或者 linux ,就很不方便。
百度之后,启动命令格式十分简单。
start "" "这里写你要打开的文件的路径"
于是命令就出来了
start "" "F:\...\linux\Ubuntu 64 位.vmx"
保存启动!! 舒舒服服,不用翻文件夹了。
【但是一定要注意如果路径里有中文,另存为的时候编码要选 ANSI 不然会出现乱码】
模拟键鼠操作
这一部分也是操作的核心,如果能够自动控制鼠标按照预先定好的位置进行操作,结合前面的部分,就可以做出一个很方便的快捷启动器,但是比较遗憾哈,了解了批处理文件的运行原理之后(不了解的可以稍微看看操作系统这门课)发现它不是很适合模拟键鼠,但是这并不能阻止我成为一个懒狗!!(声嘶力竭)既然不能直接模拟键鼠,那我们可以利用 java / C / python 写个模拟键鼠的程序,然后通过 bat 里调用。
ok 还是以启动虚拟机为例子
在上面我们打开了虚拟机的界面,下一步我们需要模拟点击红框的位置。 这里用 java 来举例,实现方法很多
确定鼠标坐标
Point point = MouseInfo.getPointerInfo().getLocation();
System.out.println("x=" + point.getX() + ",y="+ point.getY());
把鼠标放在你想要点击的位置,然后通过快捷键编译运行程序就可以了。
模拟键鼠操作
直接上代码
import java.awt.*;
import java.awt.event.InputEvent;
public class vr_start {
public static void main(String[] args) {
Robot robot = null;
try {
robot = new Robot();
} catch (AWTException e) {
e.printStackTrace();
}
robot.mouseMove(XXX, XXX);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
}
}
确定执行时间
我们回到 bat 文件里
因为打开 VMWare 需要一定的时间,如果立刻执行点击就没办法了,计算也很简单,重启计算机之后启动脚本,到界面完全打开的时间再加 1~2s,接着使用延迟函数(方法也很多),x 的位置填写 你想要延迟的秒数。
ping -n 7 127.0.0.1>nul
好的然后就把平时 java 程序的控制台运行的命令依次写进去
start "" "F:\...\linux\Ubuntu 64 位.vmx"
F:
cd F:\javaBat
ping -n 7 127.0.0.1>nul
java vr_start
然后就可以了,耶!!
效果图
总结
这三种方式结合起来,命令一行行往下写,使用得当会达到事半功倍的效果。比如你编程需要打开五个软件而且习惯后台挂着某个游戏然后听这歌,这时候就可以利用 bat 解放自己。
更加深刻的体会到了技术改变生活,幸福指数++。
|