我是新来的。几天来,试着批量生产一些东西,但有一个我无法解决的问题。我读了很多你的评论,但没有找到答案。也许你能帮我?
重点是:
所以这里有一个问题,我想要回显这些片段,所以我使用下一段代码,我用一个计数器来找出是计数器,给我一个好计数作为输出变量,并回显它在屏幕上看到如果它是好的。计数器看上去不错,末端回音串就够好了。但是我想放进第5行变量count而不是"%%m",并且找不到如何实现它的语法方法。
setlocal enabledelayedexpansion
for /l %%m in (1,1,!lenght!) do (
set /a count=0
set /a count=count+%%m
echo !count!!allinputstring:~%%m,1!
)
endlocal请帮帮我。
发布于 2013-04-04 01:24:02
@ECHO off
setlocal ENABLEDELAYEDEXPANSION
SET allinputstring=abcdefghijk
SET lenght=10
for /l %%m in (1,1,!lenght!) do (
set /a count=0
set /a count=count+%%m
FOR %%z IN (!count!) DO echo !count! !allinputstring:~%%z,1!
)
GOTO :eof这个能满足你的要求吗?
所以..。为了使计数显示(我已经将它分配给KOWNT,但是语法endlocal&set count=%count%将它分配给COUNT )
我更改了FOR/L的起始值,因为字符计数从字符串中的character#0开始。
@ECHO off
setlocal ENABLEDELAYEDEXPANSION
SET allinputstring=abcdefghij
SET lenght=9
for /l %%m in (0,1,!lenght!) do (
set /a count=0
set /a count=count+%%m
FOR %%z IN (!count!) DO echo !count! !allinputstring:~%%z,1!
)
endlocal&SET KOWNT=%count%
ECHO Now KOWNT=%KOWNT% but count=%count% because we have exited the SETLOCAL
GOTO :eof当遇到ENDLOCAL时,解析器替换行中变量的当前值,然后执行行。
因此,行被执行为
endlocal&set KOWNT=9因为当时count的值是9。
当执行SETLOCAL时,自匹配的SETLOCAL之后对环境的所有更改都会被抛出。环境变量在执行SETLOCAL时恢复到它们的状态,count再次变为空(就像在例程之前一样)。然后执行SET指令,将KOWNT设置为9。
发布于 2013-04-03 22:49:28
试试这个:
@echo off &setlocal enabledelayedexpansion
set /a lenght=9
set "allinputstring=ABCDEFGHIJ"
for /l %%m in (0,1,%lenght%) do (
set /a count=0
set /a count+=%%m
echo !count! !allinputstring:~%%m,1!
)
endlocal产出如下:
0 A
1 B
2 C
3 D
4 E
5 F
6 G
7 H
8 I
9 Jhttps://stackoverflow.com/questions/15799320
复制相似问题