发布网友 发布时间:2022-04-22 06:43
共2个回答
热心网友 时间:2022-06-16 17:52
@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
)
热心网友 时间:2022-06-16 17:53
不清楚你的实际文件/情况,仅以问题中的说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起双击运行@echo off&cd /d "%~dp0"