2013-11-05 38 views
0

我不能用一個變量使用的變量 '%a' 的這個代碼變量 'VARNAME' 內:在一個變量

@echo of 
set varname=stringhere 
for /l %%a in (1,1,10) do (
    echo %varname:~1,%%a% 
    ping -n 0.01 >nul 
) 

但它顯示的是:

一%A%A%A%A%A%A%A%A%A%

我希望它是什麼顯示:

小號ST海峽STRI〜應變串STRING小時stringhe stringher stringhere

所以的話我試圖優化我的代碼儘可能地和我想打,在一次打印出一個變量一個字母的功能,但它不會讓我用我想要的方式使用子字符串..

回答

3
@ECHO OFF 
SETLOCAL 
set varname=stringhere 
for /l %%a in (1,1,10) do (
    CALL echo %%varname:~0,%%a%% 
) 
GOTO :EOF 

注意字符串在字符0開始。

+0

感謝作品完美,易於理解! –

2

這應該做你想做的事情,包括它看起來像你在你想要的輸出中的領先空間。如果要刪除前導空間,請移除下面的REM。

@echo off 
setlocal enabledelayedexpansion 
set varname=stringhere 
set "OutString=" 
for /l %%a in (1,1,10) do set OutString=!OutString! !varname:~0,%%a! 
REM set OutString=%OutString:~1% 
echo.%OutString% 
pause