返回列表 发帖

[文本处理] 文件名乱序排列批处理如何写(部分解决了)?

本帖最后由 netdzb 于 2021-5-24 21:24 编辑

文件夹下面有lrq001.txt,lrq002.txt,lrq003.txt......,lrq100.txt,
100个文件,也有可能是200个文件,文件的数量不定的。

现在需要把文件做乱序排列,不能重复,批处理应该如何完成。

我的思路是统计出文件的数量,一个for和do就可以完成
然后random产生随机数字,然后不能让数字重复该如何做?
这个算法有点类似象排列组合啊。

回复 4# qixiaobin0715


    in ('set #') 这个代码是什么意思啊? 我这边报环境变量错误。

TOP

回复 9# qixiaobin0715

如果采取深度搜索的算法速度是否可以快一点,就是设置一个标志位,标志空的时候可以分配数字,
标志满的时候这个数字就不能分配。

TOP

回复 11# qixiaobin0715

我只会这个的递归写法,非递归我写不出来。
https://blog.csdn.net/weixin_39910711/article/details/100692318

TOP

回复 17# went

我想参考这个链接的代码修改,

@echo off
set "max=100"
set "min=40"
set "n=20"
set /a "a=%random%%%(%max%-%min%+1)+%min%"
echo %a%>random.txt
pause

随机数是产生了,问题是如何记录随机数字已经被使用过了。
40~100的随机数字,不重复,不遗漏。
我不知道如何利用上面的模版进行修改?

TOP

回复 19# qixiaobin0715

13楼的代码报错,测试文件都在网盘附件上面。
https://javame.lanzoui.com/iVnqFpg5vtg

%%a in (`set _`)  批处理也有linux的用法吗?

TOP

回复 21# newswan

xls006.txt
xls003.txt
xls007.txt
xls002.txt
xls009.txt
xls004.txt
xls005.txt
xls001.txt
xls010.txt
xls008.txt
1

运行结果多了一个1,而且第2次运行会产生20多行数据。

TOP

回复 24# went

第2行改成下面的都是死机
call :getSingleRandom 1 100 98
call :getSingleRandom 1 100 99
call :getSingleRandom 1 100 100

=======================

call :getSingleRandom 1 100 90 可以通过。

TOP

回复 29# went

好的,我是试验一下,谢谢!

TOP

返回列表