我需要寫上處理參數與結構窗口批處理腳本:迭代過蝙蝠腳本變元的元組方式
one=1 two=2 three=3
我想遍歷他們的元組,即(psedu):
> for %%x,%%y in (%*) do
>
> echo param %%x got value %%y
我試過嵌套循環和其他醜陋的黑客,有沒有一種方便的方法來得到我需要的東西?
謝謝!
我需要寫上處理參數與結構窗口批處理腳本:迭代過蝙蝠腳本變元的元組方式
one=1 two=2 three=3
我想遍歷他們的元組,即(psedu):
> for %%x,%%y in (%*) do
>
> echo param %%x got value %%y
我試過嵌套循環和其他醜陋的黑客,有沒有一種方便的方法來得到我需要的東西?
謝謝!
@echo off
setlocal EnableDelayedExpansion
set "var="
for %%a in (%*) do (
if not defined var (
set "var=%%a"
) else (
set "!var!=%%a"
ECHO "!var!=%%a"
set "var="
)
)
輸出例如:
C:\> test.bat one=1 two=2 three=3
"one=1"
"two=2"
"three=3"
由於CMD.EXE將採取等號,你必須採取預防措施,一個參數的分隔符。 Aacini重新組合了這些對,我的批處理引用了所有參數和空格。
@Echo off
Set "Allargs="%*""
For %%A in (%AllArgs: =" "%) Do (
For /f "tokens=1* delims==" %%x in (%%A) Do echo param %%x got value %%y
)
> test.cmd one=1 two=2 three=3
param one got value 1
param two got value 2
param three got value 3
這就是我想要的東西,如果變量不會得到額外的quatation標記,也許這是一個簡單的問題?我承認我沒有足夠的批處理腳本經驗來修復它。 感謝您的回答! –
這到底是一個元組? – SomethingDark
@SomethingDark https://en.wikipedia.org/wiki/Tuple – Floern
如果一個元組通常具有格式'(1,2,3)',而不是'one = 1 two = 2 three = 3',那麼請特別定義你的參數打算傳入的格式。 – Compo