Bat批处理怎么从txt中随机提取一个字符并设为变量?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Bat批处理怎么从txt中随机提取一个字符并设为变量?相关的知识,希望对你有一定的参考价值。
用bat从txt中随机选取一个字(我已经把所有字都放在第一行了所以行数不用随机)然后把这个字设为一个变量?
@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
)
参考技术A 不清楚你的实际文件/情况,仅以问题中的说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起双击运行@echo off&cd /d "%~dp0"rem 从一个指定txt文本文件里的第一行内容中随机提取/截取一个字符
set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
set "txtfile=xxx.txt"
if not exist "%txtfile%" (echo;"%txtfile%" not found&pause&exit)
set /p line=<"%txtfile%"
set length=0&set "char="
setlocal enabledelayedexpansion
:loop
if "!line:~%length%,1!" neq "" (
set /a length+=1
) else (goto :break)
goto :loop
:break
set /a "r=!random! %% length"
set "char=!line:~%r%,1!"
echo;"!char!"
echo;%#% +%$%%$%/%_% %z%
pause
exit本回答被提问者采纳
怎样批量提取视频的文件名?
在需提取视频的当前文件夹,新建一个记事本文件“1.txt”;
打开“1.txt”文件输入内容: dir *.* /b>list.txt 并保存;
将“1.txt”后缀名改为.bat文件;
双击打开“1.bat”文件将会自动生成“list.txt”(包含所有视频文件名)。
补充:以后可以直接把“1.bat”文件复制到想要提取的文件夹中,双击执行就会生成该文件夹中所有文件名列表到“list.txt”文件。
追问好用。
参考技术A 新建txt文件,复制粘贴下面两行字,保存、关闭,然后把你新建的txt文件的后缀“txt”改为“bat”,放在你想提取文件名的文件夹里,双击这个bat文件,就ok了DIR *.*/B >WenJian.txt
DIR *.*/B >WenJian.CSV本回答被提问者采纳 参考技术B
可试试这款,能连视频时长一起提取。
参考技术C 百度经验:http://jingyan.baidu.com/article/86fae346c76a103c48121a74.html以上是关于Bat批处理怎么从txt中随机提取一个字符并设为变量?的主要内容,如果未能解决你的问题,请参考以下文章