42

does %* in batch file mean all command line arguments?

55

Yes. According to the official Microsoft documentation:

The %* batch parameter is a wildcard reference to all the arguments, not including %0, that are passed to the batch file.

| improve this answer | |
  • 5
    note: if you have 30 words separated with spaces as argument, you can only take the 9 first words with %i, with i from 1 to 9, but with %* you can take all the 30 words – kokbira Apr 25 '11 at 20:38
  • 4
    @kokbira or you can use shift to access the rest – TWiStErRob Nov 10 '14 at 13:38
  • @TWiStErRob - I'm sure you know it but to be clear... even with %* you need to use shift to access parameters beyond %9. The advantage of using %* is you can pass the entire ORIGINAL parameter list (including parameters that have been "shifted out") to an external batch or other program, or with a call :label %*, even if you don't know how many parameters are in the list (or if it's more than 9). – Kevin Fegan Feb 16 at 22:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.