2013-02-28 31 views
7

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

谢谢

+1

平台吗? – user1428716 2013-02-28 18:58:51

+0

[命令行参数](http://www.robvanderwoude.com/parameters.php)。你打扰了吗?(谷歌搜索这个)(http://goo.gl/e6Kc9)? – rojo 2013-02-28 19:02:32

+1

[Windows蝙蝠文件可选参数解析]的可能重复(http://stackoverflow.com/questions/3973824/windows-bat-file-optional-argument-parsing) – 2013-02-28 22:37:02

回答

12

当然,这是可能的。命令行参数传递给您的批处理文件中为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. 
) 
+2

您也可以用'%*'处理参数'为'循环。 [示例](http://stackoverflow.com/a/15002975/1683264) – rojo 2013-02-28 19:44:59

+0

好点@rojo。我已经更新了我的答案。 – 2013-02-28 20:12:43

+0

为什么'SET ARG =%1','IF DEFINED ARG'而不是'IF NOT'%1'=='''? – Sinjai 2018-01-22 09:52:56

相关问题