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中随机提取一个字符并设为变量?的主要内容,如果未能解决你的问题,请参考以下文章

在BAT文件怎么写一个执行运行的命令?

Matlab如何提取文件名

求助如何用bat整理文件内容,并输出结果?

bat批处理提取txt关键词所在行并输出文件

怎样批量提取视频的文件名?

bat 批处理之提取带有关键字的整行数据