如何在Windows上编写批处理脚本

您知道如何使用命令提示符吗?如果这样做,您可以编写批处理文件。在其最简单的形式中,批处理文件(或批处理脚本)是双击文件时执行的几个命令的列表。批处理文件可以一直追溯到DOS,但仍然可以在现代版本的Windows上运行。

PowerShell脚本和Bash脚本可能更强大,但是如果您需要运行基本的Windows命令,批处理文件仍然非常有用。

批处理文件基础知识

批处理文件只是以.bat文件扩展名保存的文本文件。您可以使用记事本或更高级的文本编辑器(如Notepad++)编写,但不要使用Microsoft Word等文字处理器。

让我们创建一个简单的批处理文件。首先,打开记事本。在其中键入以下行:

ECHO OFF ECHO Hello World PAUSE

接下来,通过单击File>Save保存文件。您可以随心所欲地给它命名,但用.bat扩展名替换默认的.txt文件扩展名。

例如,您可能希望将其命名为hello_world.bat。

现在您就有了一个文件扩展名为.bat的批处理文件。双击它以运行它。这个特定的批处理文件设置ECHO OFF(它通过在提示符下隐藏打印命令来清理输出,将文本“Hello World”打印到屏幕,然后等待您在结束之前按某个键。

如果您没有向文件添加暂停,批处理文件将简单地运行其命令,然后自动关闭。在这种情况下,它会将“Hello World”打印到窗口,然后立即关闭命令提示符窗口。当您希望在不看到输出的情况下快速运行命令时,可以省略此选项。如果您正在运行多个命令,您可以将暂停命令放在它们之间。

编写更复杂的批处理文件

创建批处理文件从根本上说很简单。您唯一需要更改的是您在记事本中键入的内容。要运行几个命令,您只需在各自的行上键入每个命令,批处理文件就会按顺序运行每个命令。

例如,假设我们想要编写一个批处理文件,该批处理文件可以通过几个网络诊断命令运行。我们可能需要运行ipconfig/all来查看网络信息,运行ping google.com来查看Google的服务器是否响应,运行tracert google.com来运行指向google.com的traceroute,看看途中是否有任何问题。

在最基本的形式中,我们可以简单地将所有这些命令一个接一个地放在一个批处理文件中,如下所示:

ipconfig /all ping google.com tracert google.com PAUSE

当我们运行这个文件时,我们只能看到每个命令的输出紧跟在另一个命令之后。但是这不一定是编写批处理文件的理想方式。

例如,您可能希望添加注释行。任何以::开头的行都是注释行,不会执行。这使得它们成为解释文件中发生的事情的有用方式,您可能会将其提供给任何人-或者对于您未来的自己来说,他们可能会忘记您为什么要在其中放置某个命令。

您可能还希望将“echo off”命令添加到文件的开头。这通常添加到大多数批处理文件的开头。执行此操作时,命令本身不会打印到命令提示符,但结果将打印到命令提示符。例如,您将看到网络连接详细信息,但不会看到“ipconfig/all”行。大多数人不关心查看命令,因此这可以清理输出。

所以这看起来可能是这样的:

:: This batch file checks for network connection problems. ECHO OFF :: View network connection details ipconfig /all :: Check if Google.com is reachable ping google.com :: Run a traceroute to check the route to Google.com tracert google.com PAUSE

您还可以使用批处理文件进行其他操作,比如下面这样。例如,您可能希望让批处理脚本运行上述命令,然后将输出转储到稍后可以查看的文本文件。为此,您需要在每个命令之后使用>>操作符将其输出附加到文本文件。因为我们无论如何都要从文本文件中读取输出,所以可以省略PAUSE命令。

:: This batch file checks for network connection problems :: and saves the output to a .txt file. ECHO OFF :: View network connection details ipconfig /all >> results.txt :: Check if Google.com is reachable ping google.com >> results.txt :: Run a traceroute to check the route to Google.com tracert google.com >> results.txt

运行上面的脚本后,您会在带有命令输出的批处理文件所在的文件夹中找到一个名为result ts.txt的文件。批处理文件运行完毕后,命令提示符窗口将自动关闭。

我们上面使用的示例实际上依赖于将信息打印到命令提示符,以便用户可以阅读。但是,许多批处理文件被设计为非交互运行。例如,您可能有一个批处理文件,只要您双击它,它就会删除多个文件或目录。您只需要使用del命令删除文件或使用deltree命令删除目录。请记住,您使用的命令与在命令提示符窗口中运行的命令相同。

从根本上说,这就是大多数批处理文件的要点-只需一个接一个地运行几个命令。但是,批处理文件实际上可能比这复杂得多。例如,您可以将“if”语句与“goto”命令一起使用来检查某物的值,然后根据结果跳到不同的行。这更像是编写一个实际的小程序,而不是一个又快又脏的脚本。这就是.bat文件有时被称为“批处理程序”的原因之一。如果您想做一些更复杂的事情,您可以在网上找到大量关于如何使用批处理编程来做特定事情的指南。但现在,您了解了如何将一个简单的组合在一起的基础知识。

相关文章