Batch file 写函数';s将值返回到批处理中的指定变量

Batch file 写函数';s将值返回到批处理中的指定变量,batch-file,Batch File,我必须编写一个函数,将指定变量的长度返回给第二个变量。事实上,我不知道怎么做。我有几个想法,比如set%~2=%len%或set len=call:parse_to_tokens%input%,但它们不起作用 :length set string=%~1 set len=0 :loop if defined string ( set string=%string:~1% set /a len+=1 goto loop ) :: The return statement or s

我必须编写一个函数,将指定变量的长度返回给第二个变量。事实上,我不知道怎么做。我有几个想法,比如
set%~2=%len%
set len=call:parse_to_tokens%input%
,但它们不起作用

:length
set string=%~1
set len=0
:loop
if defined string (
   set string=%string:~1%
   set /a len+=1
   goto loop
)
:: The return statement or something.
exit /b 0

set /p input=""
call :parse_to_tokens %input% %len%
echo %len%
:: Prints input length.

set%~2=%len%
实际上是有效的,但是您必须调用%input%len,因为您不想分配给内容
%len%
,而是分配给变量
len
,非常感谢,它起了作用。@Stephan,如何使
string
len
变量成为本地变量并保持return语句?请看。
set%~2=%len%
实际上是有效的,但是您必须调用%input%len,因为您不想分配给内容
%len%
,而是分配给变量
len
,非常感谢,它起了作用。@Stephan,另外,如何使
string
len
变量成为局部变量并保持return语句?请参阅。