我在批处理文件中有一个变量 (vLUF),其中包含负数 -5.0,我需要获取其字符数。我正在使用上面链接中发布的命令,但变量“count”没有返回任何值。
显示输入变量:
echo input variable %vLUF%
input variable -5.0
突击队:
for %i in (%vLUF%) do @set count=%~zi
echo %count%
%count%
我将变量改为 5.0、50、abc……但计数器没有返回任何内容。
答案1
- 选项1。使用电源外壳:
@echo off && setlocal enabledelayedexpansion
set _cnt_vLUF=<nul & call set /p "_vLUF=Value LUF: "
for /f %%i in ('powershell -nop -c $env:_vLUF.Length')do set "_cnt_vLUF=%%~i"
endlocal | echo\vLUF=!_cnt_vLUF!
- 选项 2。使用
cmd /Unicode
:
@echo off && setlocal enabledelayedexpansion
set _cnt_xLUF=<nul & call set /p "_xLUF=Value LUFS: "
for /f delims^=^ eol^= %%G in ('"cmd.exe /u /c echo=!_xLUF!|find/v """')do set /a "_cnt_xLUF+=1+0"
endlocal | echo\xLUF=!_cnt_xLUF!
- 选项 3。使用
set Variable=SubStrings
:
@echo off && setlocal enabledelayedexpansion
set _cnt_zLUF=<nul & call set /p "_zLUF=Value LUF: "
for /l %%L in (999 -1 0)do if not "!_zLUF:~%%L,1!"=="" if "!_cnt_zLUF!"=="" set /a "_cnt_zLUF=1+%%~L"
endlocal | echo\zLUF=!_cnt_zLUF!
- 结果:
vLUF=[Length]
xLUF=[Length]
zLUF=[Length]
答案2
下面是一个如何计算变量中的字符数的示例:
@echo off
:Start
cls
echo.
set /p "String=Please Inform a String: "
set Counter=0
:Loop
call set Temp=%%String:~%Counter%,1%%
IF Defined Temp (
set /a Counter+=1
goto :Loop
)
echo String: %String%
echo Chars: %Counter%
echo.
pause
goto :Start