中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-08 10:33
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » for 循坏查找并播放 mp3
可打印版本  860 / 9
第1楼 rootkit 发表于 2008-04-24 18:28
初级用户 发帖 32 积分 63
for 循坏查找并播放 mp3
在本机上查找mp3并播放。

for /R . %%i in (*.mp3) do @start %%i

有三个问题感到不解:
1--> 文件名问题。文件名中有空格的时候,就提示说找不到。比如,a b.mp3 会说找不到a.mp3,b.mp3;

2-->目录中名问题。跟文件名问题差不多,目录名中有空格会说找不到目录。例如,hello world\ab.mp3。找不到目录hello。
怎么解决空格的问题呢?

3-->播放次序问题。如果找到,则只会播放最后一个文件。如何控制播放次序的问题呢?
第2楼 bat-zw 发表于 2008-04-24 18:51
金牌会员 发帖 1,276 积分 3,105
1.for /r 后面是盘符和路径,如无则指定当前目录,你那个点是没用的
2.解决空格的问题就是start "%%i",把变量用双引号引起来
3.要控制连续播放是很难的,但做到随机播放一首还是可以的
第3楼 rootkit 发表于 2008-04-24 19:00
初级用户 发帖 32 积分 63
Originally posted by zw19750516 at 2008-4-24 06:51 PM:
1.for /r 后面是盘符和路径,如无则指定当前目录,你那个点是没用的
2.解决空格的问题就是start "%%i",把变量用双引号引起来
3.要控制连续播放是很难的,但做到随机播放一首还是可以的



对于第二个,"变量用双引号引起来" 也是没用的,我试过,结果是会产生一大堆CMD窗口。害得我挨个敲“exit”。
怎么可以做到随机播放?

望高人不吝指导。。。。
第4楼 bat-zw 发表于 2008-04-24 19:14
金牌会员 发帖 1,276 积分 3,105
Originally posted by rootkit at 2008-4-24 19:00:



对于第二个,"变量用双引号引起来" 也是没用的,我试过,结果是会产生一大堆CMD窗口。害得我挨个敲“exit”。
怎么可以做到随机播放?

望高人不吝指导。。。。

在指定盘查找并随机播放一首mp3:


[ Last edited by zw19750516 on 2008-4-24 at 07:25 PM ]
第5楼 rootkit 发表于 2008-04-24 20:25
初级用户 发帖 32 积分 63
刚试过了。的确做到了随机播放,真是高人啊!

之不过,if !n! equ %m% start "%%i" 中,%%i 加“”了,所以只弹出窗口,却没有播放,去掉就OK了。
谢谢。
第6楼 bat-zw 发表于 2008-04-24 21:02
金牌会员 发帖 1,276 积分 3,105
呵呵,高人就不是了:
终于改正确了,我日,要考虑的地方真多
想做到随机循环播放也不是不可以,只是麻烦点啊(时间控制也是大概吧):
假如是用ttpayer.exe播放的


[ Last edited by zw19750516 on 2008-4-25 at 08:05 AM ]
第7楼 knoppix7 发表于 2008-04-25 10:39
银牌会员 发帖 634 积分 1,287 来自 cmd.exe
@start "" "%%~i"
第8楼 moniuming 发表于 2008-04-25 13:07
银牌会员 发帖 574 积分 1,335 来自 广西
这是我自己用的一个随机点歌的BAT,提供以参考
第9楼 rootkit 发表于 2008-04-30 18:03
初级用户 发帖 32 积分 63
有些忙,今天才有空。
各位的代码我看了。

1--------先从简单的开始说。先说7楼兄弟的。《@start "" "%%~i" 》 妙啊,很巧妙的解决了空格的问题。但是,用起来好像放的绝大多数都是所在目录的最后一首歌。
2-------- 再看看6楼的高人。解决了随机播放的问题,但仍然没解决空格的问题。虽然如此,也有改进,解决了我说的弹出一大堆CMD窗口的问题。
ping /n !t! 127.1>nul
taskkill /f /im ttplayer.exe>nul

上面这两行我认为有些多余。我们可以设置一个循坏,要播放另一首,直接敲回车;不用采取taskkill命令,因为这类播放器好像不支持多进程。
3--------最后看8楼兄弟的。多余的话不说,就一个字----强!
第10楼 rootkit 发表于 2008-04-30 18:10
初级用户 发帖 32 积分 63
问题解决了
感谢各位兄弟的支持。小弟我开了眼界,又学到不少东西。
zw19750516 兄的热心、耐心与knoppix7 兄的简洁与moniuming 兄的强悍 着实让俺学到了平常学不到的东西,因为代码里面包含了各位兄弟的思考。
再次谢谢各位兄弟。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023