本技巧以标题为“ link:/ windows-Using_Batch_Files_Part_1 [_使用批处理文件,第1部分]”的技巧为基础,因此您可能需要先进行检查。具体来说,我们正在使用一个名为“ C:\ Bat \ Fun.bat”的文件,因此将显示一个命令提示符窗口,并将您的默认目录更改为C:\ Bat。启动记事本以编辑Fun.bat,当前的形式如下:

@ECHO OFF REM This file demonstrates the use of a few command-line statements ECHO Hello. This is my Fun.bat file.

DIR %1

文件中的最后一个命令是DIR命令。它创建目录的目录列表,该目录指定为传递给批处理文件的第一个参数。如果您不希望列表显示在屏幕上,则可以使用“>”字符将输出定向到文件。因此,让我们修改Fun.bat以接受两个参数。第一个将是您要获取其目录列表的文件夹,第二个将是您希望此输出到达的文件。您的批处理文件应如下所示:

@ECHO OFF REM This file demonstrates the use of a few command-line statements ECHO Hello. This is my Fun.bat file.

DIR %1 > %2

像以前一样调用,除了现在在命令行上指定第二个参数:

C:\Bat> Fun.bat C:\Temp C:\Temp\Dirlist.txt

执行该批处理文件,最后得到一个名为C:\ Temp \ Dirlist.txt的文件,该文件包含C:\ Temp目录中所有文件的目录列表。

假设您在C:\ Temp目录中有数千个文件。您可能只想知道特定文件是否在其中,以及文件的大小,而不是冗长的清单。您可以通过将DIR命令的输出“管道连接”到新命令FIND来做到这一点。

通常,大多数产生输出数据的命令(例如DIR产生的命令)都可以用作另一条命令的输入-全部都在同一行上。这称为“管道”,用于此操作的字符是竖线(“ |”)。在本例中,期望输入的命令FIND出现在“竖线”字符(竖线)的右侧。因此,让我们用将其输出传递到FIND的命令替换我们之前的DIR命令:

@ECHO OFF REM This file demonstrates the use of a few command-line statements ECHO Hello. This is my Fun.bat file.

DIR %1 | FIND "Dirlist"

更改的结果是在指定的文件夹上执行DIR命令,但是将其输出发送到FIND命令,该命令又在该输出中搜索字符串“ Dirlist”,并将结果输出到屏幕。请注意,我们只会传递一个参数-执行DIR的文件夹名称。如果您忘记了并碰巧指定了第二个参数,那就没问题了。由于批处理文件中没有“%2”,因此任何其他参数都将被忽略。

本技巧中最后涉及的内容是时间。有一个名为“ TIME / T”的命令,它显示当前时间。还有一个名为TIMEOUT的命令,该命令使批处理作业暂停给定的秒数。最后,您可以在批处理文件中使用另一个特殊字符,即“与”号(&)。它把出现在同一行的两个(或更多)命令连接在一起。让我们使用这些命令来显示当前时间,等待五秒钟,然后将新时间写入屏幕。批处理文件应如下所示:

@ECHO OFF REM This file demonstrates the use of a few command-line statements ECHO Hello. This is my Fun.bat file.

DIR %1 | FIND "Dirlist"

ECHO The current time is & TIME /T TIMEOUT 5 ECHO The new current time is & TIME /T

关于批处理文件的更多信息。他们可以做的事情还很多,但是我想在写更多有关它们的信息之前先评估一下它们的兴趣。如果您愿意,请在下面的评论中指出您是否要继续学习有关批处理文件的更多信息。

本技巧(13103)适用于Windows 7、8和10。