【问题标题】:The use of a variable in a variable在变量中使用变量
【发布时间】:2013-11-05 04:25:32
【问题描述】:

我不能在此代码中的变量“varname”中使用变量“%a”:

@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%a%

我希望它显示为:

s st str stri strin string stringh stringhe stringher stringhere

因此,总而言之,我正在尝试尽可能优化我的代码,并且我想创建一个函数,一次打印一个变量的一个字母,但它不允许我以我想要的方式使用子字符串..

【问题讨论】:

    标签: string variables batch-file for-loop substring


    【解决方案1】:
    @ECHO OFF
    SETLOCAL
    set varname=stringhere
    for /l %%a in (1,1,10) do (
        CALL echo %%varname:~0,%%a%%
    )
    GOTO :EOF
    

    注意字符串从字符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
      

      【讨论】:

        猜你喜欢
        • 2012-04-02
        • 2012-03-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-03
        • 2021-11-04
        • 2020-09-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多