12

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

谢谢

4

1 回答 1

20

当然有可能。命令行参数以 %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.
)
于 2013-02-28T19:17:04.540 回答