.bat文件执行多条命令
笔者博客利用的是hexo+github搭建的,每次提交都会重复输入多条命令,于是笔者想到用一个bat脚本来代替这些重复的命令,但是,笔者发现bat在执行多条命令的情况下,不会等第一条命令执行完再去执行下一条命令,第一条命令执行的时候下一条命令还会继续执行,所以就会导致只执行第一条命令,笔者查了许多资料,最后了以下两种方法:
方法一
命令1 & 命令2 & 命令3 ... (无论前面命令是否故障,照样执行后面)
命令1 && 命令2 && 命令3....(仅当前面命令成功时,才执行后面)
命令1 || 命令2 || 命令3.... (仅当前面命令失败时.才执行后面)
下面来看看示例代码:
call git add .&&git status&&git commit -m "backups"&&git pull --rebase origin master&&git push
这条执行会一步一步执行命令,如果一条命令失败,就会停止。
方法二
此类方法并不是作者从网上查到了,是笔者一步一步试验出来的,如果存在问题,欢迎联系作者讨论。
call 命令1
call 命令2
call 命令3
...
笔者发现,每次在命令前加上call,就会等上一个命令结束后执行(不管错与对,只要上面结束就会停止)。
下面来看看笔者完成后的完整代码:
@echo off
call cd D:/blog
call hexo clean
call hexo g -d
call pause
call git add .&&git status&&git commit -m "backups"&&git pull --rebase origin master&&git push
call pause
.bat变量的输入和赋值
在上文中,我们还可以改进一下,就是博客文件地址,其实可以用变量代替,因为代码有点短,而且很少更改,所以这一点就不用改进了,换地址直接换一行就行了,笔者在每次创建博客的时候,也会重复输入“hexo new post ‘’”,这种重复命令,虽然不多,但是,当你写一些专栏的时候,你会发现名字有很多重复的地方,这时候就会体现出变量的作用。
示例代码:
@echo off
call cd D:/blog
set/p name=please input name:
call hexo new post "%name%"
call pause
从代码中可以看书,输入变量的命令就是:**set/p 变量名 = 输入描述(可以为空)**,这里要切记,set/p中间不要加空格,笔者在这里也被坑了,加上空格后,有些变量赋值就会出现问题,至于原因,笔者还在研究,大家先记住就好了,下面来看看写专栏重复名字的时候,应该如何优化吧。
代码如下:
@echo off
call cd D:/blog
set/p number=please input UniRx number:
set/p name=please input UniRx name:
call hexo new post "UniRx精讲(%number%)——%name%"
call pause
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 841774407@qq.com