2013-06-27 41 views
1

用FOR循環變量是有可能做替換(一拉%VARIABLE:old=new%)?我不能爲這樣的事情找到文檔,我已經在猜測語法是不成功的。如何告訴CMD在FOR循環變量上進行替換?

例如,如果我想實現此目的:

@ECHO OFF 
SETLOCAL ENABLEDELAYEDEXPANSION 

FOR /F "delims=, tokens=3" %%c IN ("field1,field2,field3,field4") DO (
    SET "_C=%%c" 
    @ECHO !_C:3=_three! 
) 

(選擇第三字段,替換3_three,並打印被取代的值,field_three

我可以做到這一點沒有中間賦值給一個常規變量?怎麼樣?

編輯:更新標題,使其比是/否的問題,其他的東西。)

+0

你試過了嗎? – Endoro

+0

當然,@Endoro。我嘗試了'%% c:3 = _three',其結果爲'field3:3 = _three'的預期(錯誤)結果。適用於常規變量的語法有一個「關閉」變量標記('%'),FOR循環變量不存在。我不知道用什麼來表達CMD的這種願望。如果有一些文件告訴我如何做,或者證實我懷疑它不像冥王星的飛行器一樣,我會很高興。 – mojo

+0

我從來沒有能夠直接使用%% var進行替換。我一直不得不像你所做的那樣將%% var分配給一箇中間變量。我相信你找到了唯一可行的解​​決方案。 –

回答

1

不能使用的循環變量替換,而不assinging他們「正常」變量第一。

+0

你有參考嗎? – mojo

+1

不是。語法'五:!FOO:!'欄的循環變量'%v' –

+0

我所期待的更好,但是這是我的猜測也是如此。 – mojo

相關問題