向批处理脚本添加标志

时间:2013-02-28 18:46:05

标签: batch-file flags

我正在编写一个将在目录上运行的Batch脚本。我希望能够添加一个标志(例如-r或/ r或类似的东西),使脚本运行文件夹树而不是单个目录。是否可以使用批处理添加标记选项?

由于

1 个答案:

答案 0 :(得分:13)

当然有可能。命令行参数将作为%1,%2等传递到批处理文件中。(%0是批处理文件的名称。)

IF "%1"=="/r" ECHO You passed the /r flag.

使用SHIFT删除第一个参数并将所有其他参数移动一个。如果要允许/ r在命令行中的任何位置,可以使用它来获得更多的功能。例如:

:processargs
SET ARG=%1
IF DEFINED ARG (
    IF "%ARG%"=="/r" ECHO You passed the /r flag.
    SHIFT
    GOTO processargs
)

或者在%*循环中使用FOR(扩展到整个参数列表),如下所示:

FOR %%A IN (%*) DO (
    IF "%%A"=="/r" ECHO You passed the /r flag.
)