中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 一个关于随机获取文件名的问题.
« [1] [2] [3] [4] »
作者:
标题: 一个关于随机获取文件名的问题. 上一主题 | 下一主题
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 46 楼』:  

反复sort也只是以最后一个为准,如果sort一次提取一次的话无疑是舍本逐末。
如果要求不高,可以浅尝辄止;否则还是利用 random 来得好。

2006-12-11 07:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
mqi
初级用户





积分 28
发帖 11
注册 2006-11-5
状态 离线
『第 47 楼』:  

请看看这样行不行啊
@echo off
for  %%i in (*.mp3) do (
                   echo %%i >>1.txt
)
exit

2006-12-20 23:36
查看资料  发短消息 网志   编辑帖子  回复  引用回复
gocndos
新手上路





积分 8
发帖 4
注册 2007-1-15
状态 离线
『第 48 楼』:  

收下了,以后研究

2007-1-21 01:33
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hngaoshou
社区乞丐

gaoshou



积分 -16
发帖 77
注册 2007-1-30
状态 离线
『第 49 楼』:  

再顶
实在是太好了

   此帖被 +1 点积分    点击查看详情   
评分人:【 look 分数: +1  时间:2007-10-22 13:59




:cool:
[swf=1,1]http://img63.imageshack.us/my.php?image=58098766zh0.swf[/swf]
2007-2-1 02:58
查看资料  发送邮件  发短消息 网志  OICQ (327869085)  编辑帖子  回复  引用回复
jmzsyt
新手上路





积分 10
发帖 5
注册 2006-11-21
状态 离线
『第 50 楼』:  

以实现WMP的随机播放.
播放器里就有这个功能吧!这么多改来改去的多麻烦

2007-3-2 02:28
查看资料  发短消息 网志   编辑帖子  回复  引用回复
nzisisco
初级用户





积分 107
发帖 47
注册 2007-3-3
状态 离线
『第 51 楼』:  

全是高手 i 服了 u

2007-3-9 02:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
test266
初级用户





积分 22
发帖 10
注册 2007-2-16
状态 离线
『第 52 楼』:  试试我的

@echo off
setlocal ENABLEDELAYEDEXPANSION

set /p mypath=请输入MP3文件所在的目录,直接回车使用当前目录:
set t1=%time%
set /a num=1
rem 下面这行不能处理有空格的路径(谁能告诉我怎么解决呀)
rem for /f %%i in ('dir /b *.mp3') do (
rem 下面这行可以处理空格,请自己修改路径
for /R %mypath% %%i in (*.mp3) do (
set s!num!=%%i
set /a num+=1
)

set /a fcount=%num%
set /a fcount-=1

:loop
set /a rnd=%random%
set /a rnd%%=%num%
set /a rnd+=1

if not "!s%rnd%!"=="" (
  echo !s%rnd%!
  call :swap %rnd% "!s%num%!"
  set s%num%=
  set /a num-=1
)

if %num% GTR 1 goto loop

echo 文件总数:%fcount%
echo 开始时间:%t1%
echo 结束时间:%time%

:swap
set stmp=%2
set s%1=%stmp:~1,-1%

[ Last edited by test266 on 2007-3-9 at 11:29 AM ]

2007-3-9 10:15
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jmz573515
银牌会员




积分 1212
发帖 464
注册 2006-12-13
状态 离线
『第 53 楼』:  

楼下的好像不能处理带有空格和减号的文件名...

2007-3-9 22:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
linee
初级用户





积分 94
发帖 49
注册 2008-12-14
状态 离线
『第 54 楼』:  



  Quote:
Originally posted by zh159 at 2006-12-10 14:29:
把俺最新的也加入这贴吧^_^

@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 $ ...

把这个改来听歌不错,空列表随机播放。
@echo off
for /f "delims=" %%i in ('dir/a-d/b/s *.mp3,*.wma,*.ape') do call set $%%random%%$%%i=$
for /f "tokens=1,2* delims=$=" %%i in ('set $') do "C:\Program Files\MPlayer\mplayer.exe" "%%j"
感觉下面这个要稍快点。
@echo off
for /r . %%i in (*.mp3,*.wma,*.ape) do call set $%%random%%$%%i=$
for /f "tokens=1,2* delims=$=" %%i in ('set $') do "C:\Program Files\MPlayer\mplayer.exe" "%%j"
[ Last edited by linee on 2008-12-31 at 05:28 ]

2008-12-30 23:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复
linee
初级用户





积分 94
发帖 49
注册 2008-12-14
状态 离线
『第 55 楼』:  

参考24楼,34楼,把我修改的也贴在这吧。
@echo off
(for %1 %%i in (*.mp3,*.wma)do call echo %%random%%=%%i)%3>nul&%2:EOF
for /f "tokens=2delims==" %%a in ('"%~0" /r,goto,2^|sort')do echo %%a

@echo off&%~1
for /f "tokens=2delims==" %%a in ('%~0 "(for /r %%i in (*.mp3,*.wma)do call echo %%^random%%=%%i)&goto:EOF"^|sort')do echo %%a
[ Last edited by linee on 2009-1-7 at 23:09 ]

2009-1-5 15:07
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] [4] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: