Hexo博客日常操作自动化部署

image-20230116194156434

感觉打开blog目录右键点Git bash here再执行一系列的命令太麻烦了,于是想到用cmd改造成自动化

参考文章:

bat 脚本执行cmd命令。(启动nacos)_bat执行cmd命令_海滩超人的博客-CSDN博客

先在桌面创建一个txt,输入:

1
cmd /k "命令"

cmd意味着使用命令提示符cmd, /k是说明执行完命令后不关闭窗口。

这只是单独一个命令的用法,那执行多个命令呢?

1
2
3
cmd /k "命令1 & 命令2 & 命令3"     (无论前面命令是否成功, 后面都会执行)
cmd /k "命令1 && 命令2 && 命令3 " (仅当前面命令成功时, 才执行后面)
cmd /k "命令1 || 命令2 || 命令3" (仅当前面命令失败时. 才执行后面)

三者之间的区别在于几个命令之间的符号不相同。记住只有两个命令之间才有特殊符号,最左最右边两个命令的左边和右边都是没有符号的。

而且每个命令之间的符号不一定要全部一样,三种符号都可以选择一个符号来进行来调整是否要前面的命令成功执行才进行下一个。

在cmd前面加上start 说明这条命令单独打开一个cmd窗口执行,多少行start cmd即打开多少个cmd窗口。网上搜索看到很多人一条命令都在前面加start,我觉得没必要。


情况1:我想创建新的md文件开始写作,只需要打开hexo,后面无需继续。则

1
cmd /k "cd /d E:\blog\myblog"

cd 后有/d是因为直接用cd命令不会直接打开路径,而是需要再输入一次盘符来确认。而后面的blog根目录路径需要自己填自己的。

然后自己再手动输入

1
hexo new posts

情况二:我想自动化利用hexo s打开http://localhost:4000/预览网页,那就:

1
cmd /k "cd /d E:\blog\myblog&&hexo cl&&hexo g&&hexo s"

如果想自动打开网页可以用start命令

1
start 要打开的网站

记住网站一定要加上https://,否则系统不识别是网站以为是文件就会提示找不到文件

那么合起来就是

1
cmd /k "cd /d E:\blog\myblog&&hexo cl&&hexo g&&hexo s&&start http://localhost:4000/"

但你会发现这样会卡在hexo s,因为系统判断hexo s还在执行中就不会执行下一条,这时候我们就:

1
cmd /k "cd /d E:\blog\myblog&&hexo cl&&hexo g&&start http://localhost:4000/&hexo s"

到hexo g为止都是一定要上一条执行完才能下一条,在打开浏览器的localhost的时候改为单个&就不管前面是否执行正确都执行hexo s,虽然浏览器打开localhost有点时间了hexo s才执行完,但也还算是个可行的方案。


情况三:我修改好博客准备部署到pages上,则:

1
cmd /k "cd /d E:\blog\myblog&&hexo cl&&hexo g"

因为hexo d就是直接部署了,我觉得需要一点保险,hexo d最好手动输入。在cmd运行前面命令的时候输入hexo d回车,到前面的命令运行完了就会运行你输入的hexo d也一样能直接继续运行。

如果你觉得更自动好就加上hexo d。但其实无所谓,多个保险嘛。


最后记得检查一下自己的命令符号是否有误,这样才能万无一失,自动又好用。

image-20230116203520761