Reputation: 45
In a Windows batch script, I want to pass a variable number of arguments, then use the first n-1 of these to build a new variable, and the nth argument as another variable
so if I enter script.cmd arg1 arg2 arg3 arg4
, I want to be able to do
set newvariable1="arg1 arg2 arg3"
set newvariable2="arg4"
and if I enter script.cmd arg1 arg2 arg3 arg4 arg5 arg6
set newvariable1="arg1 arg2 arg3 arg4 arg5"
set newvariable2="arg6"
where the arguments are alphanumeric strings
Upvotes: 1
Views: 205
Reputation: 67216
@echo off
setlocal EnableDelayedExpansion
set "newvariable1="
set "newvariable2="
for %%a in (%*) do (
set newvariable1=!newvariable1! !newvariable2!
set newvariable2=%%a
)
set newvariable1="%newvariable1:~2%"
set newvariable2="%newvariable2%"
echo newvariable1=%newvariable1%
echo newvariable2=%newvariable2%
Upvotes: 2