2015-12-02 32 views
0

首先,我對編碼很陌生,希望您可以在這裏找到一些幫助。在BATCH中用增加的值替換字符串

我正在嘗試做一個批處理腳本來解決一個簡單的問題。

我想給腳本提供一個參數,腳本中的任何位置都包含通配符,腳本會檢測它並用for循環給出的增量值替換它。

這是我到現在爲止,但問題是,還沒有增量結果。

@echo off 
setlocal enabledelayedexpansion 
set SEARCHTEXT=? 
set string=%1 

for /l %%x in (1, 1, 5) do (
    set REPLACETEXT=%%x 
    call set string=%%string:!SEARCHTEXT!=!REPLACETEXT!%% 
    echo !string! 
) 
:end 

通過例如,如果我這個另存爲 「example.bat」 並運行,這是我所得到的

> example.bat num? 

結果是...

num1 
num1 
num1 
num1 
num1 

,但是這應該是...

num1 
num2 
num3 
num4 
num5 

你能幫幫我嗎?

+1

'爲/ L %% X(1,1,5)不要回應字符串:%!SEARCHTEXT%= %% X! ' – Aacini

回答

1

您正在覆蓋string並丟失了?

將結果代入新變量。

for /l %%x in (1, 1, 5) do (
    set "string2=!string:%SEARCHTEXT%=%%x!" 
    echo !string2! 
) 
1

重新初始化string在每次迭代將工作太: