2014-03-30 121 views
1

在Windows批處理腳本中,我想傳遞可變數量的參數,然後使用第一個n-1構建一個新變量,並將第n個參數作爲另一個變量Windows批處理腳本 - 提取可變數量的參數

,所以如果我進入script.cmd arg1 arg2 arg3 arg4,我希望能夠做到

set newvariable1="arg1 arg2 arg3" 
set newvariable2="arg4" 

,如果我進入script.cmd arg1 arg2 arg3 arg4 arg5 arg6

set newvariable1="arg1 arg2 arg3 arg4 arg5" 
set newvariable2="arg6" 

其中參數是字母數字字符串

回答

2
@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% 
+0

這是完美的。謝謝。 – user3478415

+0

你可以把這個答案作爲「有用的」,然後選擇它作爲「最佳答案」? (當你有足夠的代表這樣做) – Aacini

+0

聰明,非常好! – kenny