bat 傳遞超過10個參數(bat參數遍歷)


批處理文件中可引用的參數為%0~%9, %0是指批處理文件的本身,也可以說是一個外部命令;%1~%9是批處理參數,也稱形參;而替換形參的實參若超過了批處理文件中所規定數值(9個)且想在批處理文件中應用這些實參的話,shift命令可以幫你實現!

Shift 命令:更改批處理文件中可替換參數的位置
C代碼

    shift [/n]  

n 的取值是[0,8],且為整數;[/n]為可選參數,當賦予n某個值時,就意味着命令從第n個參數開始移位;當n賦予的值為0,1或不帶有任何命令選項的 shift時,則表示批處理文件中替換參數左移一個位置,后面的替換參數陸續填補上去,直至可替換參數為空。


eg: 創建批處理文件d:\test.bat;
C代碼

    @echo off   
    cls   
    echo   %1 %2 %3 %4 %5 %6 %7 %8 %9   
    shift /0   
    echo   %1 %2 %3 %4 %5 %6 %7 %8 %9   
    shift /1   
    echo   %1 %2 %3 %4 %5 %6 %7 %8 %9   
    shift /2   
    echo   %1 %2 %3 %4 %5 %6 %7 %8 %9   
    shift /3   
    echo   %1 %2 %3 %4 %5 %6 %7 %8 %9   
    shift /4   
    echo   %1 %2 %3 %4 %5 %6 %7 %8 %9   
    shift /5   
    echo   %1 %2 %3 %4 %5 %6 %7 %8 %9   
    shift /6   
    echo   %1 %2 %3 %4 %5 %6 %7 %8 %9   
    shift /7   
    echo   %1 %2 %3 %4 %5 %6 %7 %8 %9   
    shift /8   
    echo   %1 %2 %3 %4 %5 %6 %7 %8 %9   
    pause 1>nul  


然后在命令提示符d:\下輸入test 1 2 3 4 ......17顯示執行結果,就知曉其中的規律啦!
C代碼

    D:\>test 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17   
      
    1 2 3 4 5 6 7 8 9   
    2 3 4 5 6 7 8 9 10   
    3 4 5 6 7 8 9 10 11   
    3 5 6 7 8 9 10 11 12   
    3 5 7 8 9 10 11 12 13   
    3 5 7 9 10 11 12 13 14   
    3 5 7 9 11 12 13 14 15   
    3 5 7 9 11 13 14 15 16   
    3 5 7 9 11 13 15 16 17   
    3 5 7 9 11 13 15 17

遍歷bat參數

FOR /l %%x in (1,1,9) do ( 
    SHIFT /%%x 
    IF "%1"=="" ( 
        GOTO :BREAK1 
    ) 
    IF /I "%1"=="-ForceNormal" ( 
        set Mode=Normal 
    ) 
    IF /I "%1"=="-ForceError" ( 
        set Mode=Error 
    ) 
) 
:BREAK1

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM