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