调用变量 : %name% ----用%将要调用的变量包起来就可以调用此变量
%%name表示name为 for 里面的 循环变量
!name!表示 延迟变量(在复合语句中用到,挖坑)
@echo off
setlocal EnableDelayedExpansion
::从 file.txt 中读取文本
set /p str=<file.txt
::显示文本
echo %str%
::创建用于储存长度的变量
set /a len=0
::获取 str 变量的长度 储存到 len 中
call :strlen len str
::显示文本长度
echo 文本长度 = %len%
::生成从[0到len)的随机数
:: 先创建随机数(0~65535)
set rand=%random%
:: 显示随机数
echo 随机数 = %rand%
:: 将随机数与len求余数(对于有5个字的文本会生成[0,4]的区间)
set /a choose=%rand%%%%len%
:: 显示选择的数字
echo 选择第 %choose% 个索引(0表示第1个字,1表示第2个字)
::显示文本中根据随机数选择的字符(截取
echo !str:~%choose%,1!
pause
::这里是获取文本总长度的函数
:strlen <resultVar><stringVar>
(
(set^ tmp=!%~2!)
if defined tmp (
set "len=1"
for %%P in (4096 2048 1024 512 256 128 64 32 16 8 4 2 1) do (
if "!tmp:~%%P,1!" NEQ "" (
set /a "len+=%%P"
set "tmp=!tmp:~%%P!"
)
)
) ELSE (
set len=0
)
)
(
endlocal
set "%~1=%len%"
exit /b
)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)