| 
 
rrrrfcu3 
新手上路
 
 
 
  
  
积分 12 
发帖 5 
注册 2007-11-6 
状态 离线
 | 
『楼 主』:
 求助 关于随机生成一个文件列表
 
使用 LLM 解释/回答一下
  
从原来来路径的文件列表中随机选取几个成一个新列表 
例如  :\gequ\angela06-01.wma 
  D:\gequ\yinxingdcb.wma 
  D:\gequ\rgaxq.mp3 
  D:\gequ\316515760.mp3 
  D:\gequ\tl.mp3 
  D:\gequ\OIkRHUbe.mp3 
  D:\gequ\bengpao.mp3 
  D:\gequ\20061017151241308.mp3 
  D:\gequ\love.mp3 
  D:\gequ\qiutian.mp3 
  D:\gequ\28.mp3 
我要从中随机选取3个到新列表
 
原来我想从数序中随机选取几个数字,然后给数字赋值,可是我却不能用来替换数傎 
@echo off 
set 1=D:\gequ\zuichudemengxiang.mp3 
echo %1%>>1.txt 
pause
 
请问如何解决?  
 
    
 
  
 |   
 | 
  2007-11-6 23:44 | 
  
 | 
 | 
 
zh159 
金牌会员
 
      
 
  
 
积分 3687 
发帖 1467 
注册 2005-8-8 
状态 离线
 | 
『第 2 楼』:
 
 
使用 LLM 解释/回答一下
  
N久前就有讨论过 
http://www.cn-dos.net/forum/viewthread.php?tid=22128
 
这是我的一段
 @echo off 
for /f "delims=" %%i in ('dir/a-d/b *.mp3') do call set $%%random%%$%%i=$ 
for /f "tokens=1,2* delims=$=" %%i in ('set $') do echo %%j 
pause
  
 
    
 
  
  |  
                  
  
                      |   
 | 
  2007-11-7 01:09 | 
  
 | 
 | 
 
rrrrfcu3 
新手上路
 
 
 
  
  
积分 12 
发帖 5 
注册 2007-11-6 
状态 离线
 | 
『第 3 楼』:
 
 
使用 LLM 解释/回答一下
  
昨天晚上我翻了以前的帖子,以前的只是随机生成一个播放列表,达到随机播放的目的,而我的要求只随机选取部分到新列表,再有,我这得加上路径 
 
    
 
  
 |   
 | 
  2007-11-7 07:38 | 
  
 | 
 | 
 
zh159 
金牌会员
 
      
 
  
 
积分 3687 
发帖 1467 
注册 2005-8-8 
状态 离线
 | 
『第 4 楼』:
 
 
使用 LLM 解释/回答一下
  
根据这个改一下 
@echo off 
for /f "delims=" %%i in ('dir/a-d/b *.mp3') do ( 
  set /a n+=1 
  call set list%%n%%=%%i 
) 
echo 1 to %n% 
set /p m= 
call echo %%list%m%%% 
pause 
 Last edited by zh159 on 2007-11-7 at 11:42 AM ]  
 
    
 
  
  |  
                  
  
                      |   
 | 
  2007-11-7 11:41 | 
  
 | 
 | 
 
rrrrfcu3 
新手上路
 
 
 
  
  
积分 12 
发帖 5 
注册 2007-11-6 
状态 离线
 | 
『第 5 楼』:
 
 
使用 LLM 解释/回答一下
  
我的思路是通过数字生成随机数五个 
@echo off 
:start 
cls 
set Num= 
set Tmp$= 
 
:loop 
set /a randomloop=%random%%%99+1 
for %%n in (%Tmp$%) do if "%randomloop%" == "%%n" goto loop 
call set Tmp$=%%Tmp$%% %randomloop% 
set /a Num+=1 
set random_%Num%=%randomloop% 
if %Num% LSS 5 goto loop 
 
for /l %%n in (1,1,%Num%) do call set /p= %%random_%%n%%<nul 
echo.>>A.txt 
pause 
goto start 
exit 
 
我再定义每个带路径的文件名为1~99如何把A.txt中随机生机的5个数字替换成我事先定义的带路径的文件名呢? 
 
例如我定义  1=D:\gequ\zuichudemengxiang.mp3 
  2=D:\gequ\school.mp3 
  3=D:\gequ\lige.wma 
  4=D:\gequ\angela06-01.wma 
  5=D:\gequ\yinxingdcb.wma 
  6=D:\gequ\rgaxq.mp3 
  7=D:\gequ\316515760.mp3 
  8=D:\gequ\tl.mp3 
...... 
再通过随机生成的5 7 9 8 1 换成相应的带路径的文件名 
请高手指教 
 
    
 
  
 |   
 | 
  2007-11-7 12:35 | 
  
 | 
 | 
 
zh159 
金牌会员
 
      
 
  
 
积分 3687 
发帖 1467 
注册 2005-8-8 
状态 离线
 | 
『第 6 楼』:
 
 
使用 LLM 解释/回答一下
  
@echo off 
for /f "delims=" %%i in ('dir/a-d/b *.mp3') do ( 
  set /a n+=1 
  call set list%%n%%=%%i 
) 
 
:loop 
set /a randomloop=%random% %% %n%+1 
for %%n in (%Tmp$%) do if "%randomloop%" == "%%n" goto loop 
call set Tmp$=%%Tmp$%% %randomloop% 
set /a Num+=1 
call echo %%list%randomloop%%% 
if %Num% LSS 5 goto loop 
 
pause
  
 
    
 
  
  |  
                  
  
                      |   
 | 
  2007-11-7 12:44 | 
  
 | 
 | 
 
everest79 
金牌会员
 
       一叶枝头,万树皆春
  
  
积分 2564 
发帖 1127 
注册 2006-12-25 
状态 离线
 | 
『第 7 楼』:
 
 
使用 LLM 解释/回答一下
  
参考楼上的我也写了个 
 
@echo off 
>x.txt (for /f "tokens=1*" %%a in ('^(for /f "tokens=1* delims=:" %%i in ^('findstr /n . list.txt'^) do @call set/a list^=%%random%%%%%%i^>nul^&call echo %%list%% %%j^)^|sort /r') do (set/ax+=1,y=3/x,z=1/y 2>nul&&echo %%b||goto end)) 
 
:end 
pause 
  
 
    
 
  
 |   
 | 
  2007-11-7 20:05 | 
  
 | 
 | 
 
rrrrfcu3 
新手上路
 
 
 
  
  
积分 12 
发帖 5 
注册 2007-11-6 
状态 离线
 | 
 | 
  2007-11-13 19:58 | 
  
 | 
 | 
 
r0gue 
新手上路
 
 
 
  
  
积分 7 
发帖 4 
注册 2007-11-13 
状态 离线
 | 
 | 
  2007-11-13 23:29 | 
  
 |