27.Windows批处理与Linux Shell脚本编写指南

1.前言

前面的几个章节我们简单学习了一下如何使用Linux系统,以及如何用VS来开发Linux程序。

一般来说,对于Linux的基础使用也就这样了:基本命令、开发程序。

想要更加深入的学习Linux,就还得学习各种常用软件的使用方法,以及更多命令。

而本章介绍的脚本,无论是在Windos系统,还是Linux系统上,都相当重要。

没错,C/C++程序员学的东西就是非常杂,基本什么都得会点。

一般在Linxu系统上使用脚本频率更高。

当然,各个系统之间的脚本编写方法是不同的,除非你使用一个中间层,比如python语言,来抹平不同平台脚本的差异性,否则就得分别学习不同平台脚本的编写方式。

虽说是要学不同平台的脚本编写,看似有点多,但事实上脚本之间都有互通性,只是脚本的语法略有差异。

所以本章就来分别详细介绍这两种平台的脚本编写方式。

2.什么是脚本?

为了更加清晰地理解什么是脚本,最直观的方法就是看一看别人写的专业脚本到底长啥样。

大家应该都是装了VS的,所以我们就可以来到VS的一个用于搭建构造环境的脚本:

D:\Program Files\Microsoft Visual Studio\2022\Preview\VC\Auxiliary\Build

根据大家安装的版本,位置,上面这个目录可能略有不同,可以自己调整,然后就可以看到下方的几个脚本文件:

在这里插入图片描述

没错,在Windows系统中以.bat后缀结尾的文件,就是一个脚本文件(在Windows系统中,称其为批处理),双击它们,就可以像双击一个exe程序一样,可以直接运行。

这里我们来看一看这个占用内存最大的脚本文件vcvarsall.bat

在这里插入图片描述

不要直接点它,那是直接运行了,右键它,然后点击编辑:

在这里插入图片描述

然后我们就可以看到上面这些看起来很奇怪的字符串。

通过这里我们可以得出什么结论吗?

这说明脚本文件是不依赖于任何编译器的,我们可以直接在记事本里面写脚本,只要将其保存为.bat后缀,就能直接点击运行!

是不是突然就理解那些用记事本编程的人了?看起来特别厉害的样子,也许就是一个脚本小子。

当然也不是贬低的意思,毕竟我们写出来的软件就是用来用的,能把软件用好也是一个技能。

这并不困难(至少与学习C/C++相比而言),所以我这里只使用了一章的篇幅来大致介绍两个平台的脚本开发流程

这里只介绍基础知识,想要更加深入的学习,就还得自行学习各种命令的高阶用法。

3.Windows脚本

首先我们直接来看Windows脚本的编写流程,毕竟绝大部分人应该都习惯于使用Windows。

注意:在脚本语言中,习惯于一行写一句命令,且命令前无空格

技巧:windows命令的参数是通过/传递的,如果不清楚一个命令如何用,就可以传入/?,以获取命令的详细解释

3.1 如何写脚本

那么我们应该如何写脚本呢?很简单,如前面所说,记事本即可

新建一个记事本,任意命名,但后缀需要更改为.bat:

image-20231012162749413

然后用记事本打开并编辑它。

如果你有其它编辑软件,甚至用VS打开它进行编辑,都是可以的。

然后输入一个pause,即暂停的意思:

image.png

保存后,双击这个文件:

image.png

看到没,这就相当于我们自己进入控制台,然后输入pause命令是一样的效果,而所谓脚本,就是将这些大量的命令放在一起,统一执行,以实现某些功能。

pause这个命令的作用就是暂停,因为脚本文件执行完成后,就直接退出了,如果没有暂停按钮,你可能就啥也没看到,脚本就已经执行完了。

当你按下任意键,就会继续执行pause命令之后的命令,如果后面没有命令了,就退出脚本文件

3.2 关闭回显

上面我们使用了一下pause命令,但执行后,它会显示路径,以及执行的这个命令名称。

但有时候,我们就不喜欢它显示出来,怎么办呢?

关闭回显有两种方法: