本帖最后由 qixiaobin0715 于 2023-9-5 13:13 编辑
回复 23# pd1
以下代码根据你在23楼的思路写的,由于比较匆忙,看起来不是很明晰,未考虑效率问题,测试约1分钟左右。简要说明如下:
1.每次循环需要得到100个给定字符使用次数。(第17行)
2.判断给定的字符使用次数是否达到上限,若达到上限则忽略,否则按正常方法设置变量,以便继续使用。(第9行)
3.判断给定的字符尚可使用的次数是否达到剩余行数,若是,则本次优先使用(通过在未达到剩余行数上限的字符的变量名前加上字母,使达到剩余行数的字符变量在后面的循环中优先排在前面)。(第19、6-10行)- @echo off
- setlocal enabledelayedexpansion
- (for /l %%i in (1,1,1000) do (
- for /l %%j in (0,1,99) do (
- set num=0%%j
- if !@%%j! equ 0 (
- set _!random!_%%j=!num:~-2!
- ) else (
- if !#%%j! neq 500 set _a!random!_%%j=!num:~-2!
- )
- )
- set n=0
- for /f "tokens=1-3 delims==_" %%a in ('set _') do (
- set /a n+=1
- if !n! leq 50 (
- set str=!str! %%c
- set /a #%%b+=1
- )
- set /a @%%b=1000-%%i-500+#%%b
- set _%%a_%%b=
- )
- echo,!str!
- set str=
- ))>1.txt
- pause
复制代码
|