计算具有负值的变量字符数

计算具有负值的变量字符数

我在批处理文件中有一个变量 (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

@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

相关内容