如何在Windows上编写批处理脚本
您知道如何使用命令提示符吗?如果这样做,则可以编写一个批处理文件。批处理文件(或批处理脚本)以最简单的形式列出了双击该文件时要执行的几个命令。批处理文件可以追溯到DOS,但仍可在Windows的现代版本中使用。
PowerShell脚本和Bash脚本可能更强大,但是如果您需要运行基本的Windows命令,则批处理文件仍然会非常有用。
批处理文件基础
批处理文件只是保存为.bat文件扩展名的文本文件。您可以使用记事本或更高级的文本编辑器(如Notepad ++)编写代码,但不要使用Microsoft Word这样的文字处理器。
让我们创建一个简单的批处理文件。首先,打开记事本。在其中输入以下几行:
回声回声Hello World PAUSE
接下来,通过单击文件>保存来保存文件。为其提供任何您喜欢的名称,但用.bat扩展名替换默认的.txt文件扩展名。
例如,您可能想为其命名 hello_world.bat
.
您现在有了一个带有.bat文件扩展名的批处理文件。双击运行它。这个特定的批处理文件将ECHO设置为关闭(该操作通过隐藏命令提示符处的命令来清除输出,将“ Hello World”文本打印到屏幕上,然后等待您按下某个键结束操作。
如果您没有添加 暂停
到该文件时,批处理文件将只运行其命令,然后自动关闭。在这种情况下,它将在窗口中打印“ Hello World”,然后立即关闭“命令提示符”窗口。如果您想快速运行命令而看不到输出,则可以忽略此操作。如果您正在运行多个命令,则可以将 暂停
在他们之间命令。
编写更复杂的批处理文件
创建批处理文件从根本上来说很简单。您唯一需要更改的就是在记事本中键入的内容。要运行多个命令,请在其自己的行上键入每个命令,批处理文件将按顺序运行每个命令。
例如,假设我们要编写一个运行几个网络诊断命令的批处理文件。我们可能要跑 ipconfig /全部
查看网络信息, ping google.com
查看Google的服务器是否响应,以及 tracert google.com
运行到google.com的traceroute,并查看在途中是否有任何问题。
在最基本的形式中,我们可以简单地将所有这些命令放在一个批处理文件中,一个接一个地放置,如下所示:
ipconfig / all ping google.com tracert google.com暂停
当我们运行该文件时,我们只会看到每个命令的输出。但这不一定是编写批处理文件的理想方法。
例如,您可能要添加注释行。以a开头的任何行 ::
是注释行,将不会执行。这使它们成为一种有用的方式,可以向您可能会给它的任何人或未来的自己(可能忘记了为什么在其中放置特定命令的人)解释文件中发生的情况。
您可能还想将“ ECHO OFF”命令添加到文件的开头。通常将其添加到大多数批处理文件的开头。执行此操作时,命令本身不会被打印到命令提示符中,但结果会被打印。例如,您将看到网络连接详细信息,但看不到“ ipconfig / all”行。大多数人都不在乎查看命令,因此可以清理输出。
所以这可能是这样的:
::此批处理文件检查网络连接问题。回声关闭::查看网络连接详细信息ipconfig / all ::检查google.com是否可访问ping google.com ::运行traceroute检查到Google.com的路由tracert google.com暂停
像这样的批处理文件还有其他说明。例如,您可能想让批处理脚本运行上述命令,然后将输出转储到文本文件中,以便以后查看。为此,您可以使用 >>
每个命令后的运算符将其输出附加到文本文件。无论如何,我们都将从文本文件中读取输出,因此我们可以省略 暂停
命令。
::此批处理文件检查网络连接问题::并将输出保存到.txt文件。回声关闭::查看网络连接详细信息ipconfig / all >> results.txt ::检查google.com是否可访问ping google.com >> results.txt ::运行traceroute以检查到Google.com tracert google的路由。 com >> results.txt
运行上述脚本后,您将在与批处理文件相同的文件夹中找到一个名为result.txt的文件,其中包含命令的输出。批处理文件运行完毕后,“命令提示符”窗口将自动关闭。
我们上面使用的示例依赖于将信息实际打印到命令提示符中,以便用户可以读取它。但是,许多批处理文件被设计为非交互式运行。例如,您可能拥有一个批处理文件,该文件每次双击都会删除多个文件或目录。您只需要使用 德尔
命令删除文件或 德雷特里
命令删除目录。请记住,您所使用的命令与在“命令提示符”窗口中运行的命令相同。
从根本上讲,这是大多数批处理文件的重点-只是一个接一个地运行几个命令。但是,批处理文件实际上可能比这复杂得多。例如,您可以将“ IF”语句与“ GOTO”命令一起使用以检查某物的值,然后根据结果跳至不同的行。这更像是编写实际的小程序,而不是快速而肮脏的脚本。这就是为什么.bat文件有时被称为“批处理程序”的原因之一。如果您想做更复杂的事情,可以找到大量的指南,以在线进行批处理编程。但是现在,您知道了如何将一个简单的东西放在一起的基础知识。