2013-02-28 73 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

相關問題