[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理如何实现:7天内随机播放不重复的音乐?

如题所示:每天固定时段在同一个文件夹内随机播放一个音乐,7天内播放过的音乐不再播放,7天后一个轮回。

我自己在网上找了一段大神的批处理,能实现每次都随机播放,但避免不了重复,代码如下:
  1. @echo off&color a&setlocal enabledelayedexpansion
  2. for %%a in ("D:\jhrw\现用音乐\music\*.bat") do set /a n+=1
  3. set /a m=%random%%%%n%
  4. if %m% equ 0 set m=%n%
  5. for %%a in ("D:\jhrw\现用音乐\music\*.bat") do (
  6. set /a counter+=1
  7. if !counter! equ %m% start %%a
  8. )
复制代码

用批处理怎么实现?

TOP

回复 4# 77七


    您的脚本我试了一下:一闪而过!
    我把我的使用环境再说的具体一些,以下内容是已经实现的:电脑默认静音,每次播放前会自动取消静音并设置音量大小,歌曲播放完后自动关闭播放器进程,电脑自动设置静音。
    为了达到这个效果,我给每首歌曲在D:\jhrw\现用音乐\music下都设置了与歌曲名相同的批处理文件(这个批处理用来实现解除静音、设置音量,播歌曲,并在播放完后自动关闭进程和自动加静音)。而随机播放音乐的批处理放在  D:\jhrw\晨乐 ,  执行时实际是随机打开了D:\jhrw\现用音乐\music下歌曲同名的批处理。

TOP

回复 6# _avatar_


    您给的脚本可以用,但是与我的使用环境有出入:
    我给每首歌曲在D:\jhrw\现用音乐\music下都设置了与歌曲名相同的批处理文件(这个批处理用来实现解除静音、设置音量,播歌曲,并在播放完后自动关闭进程和自动加静音)。而随机播放音乐的批处理放在  D:\jhrw\晨乐 ,  执行时实际是随机打开了D:\jhrw\现用音乐\music下歌曲同名的批处理。

    而且您的脚本有人为的判断,我想要7天到了自动重新开始在歌曲里再次随机播放歌曲,新的7天仍然不重复即可。

TOP

回复 7# Five66


    也是个办法,但是运行时一闪而过,我在cmd里看了一下,提示两次:此时不应有%%a。
    我想上传图,总是失败,抱歉。

TOP

回复 12# idwma


    人狠话不多,直接按要求上代码,优秀~
    您的代码也是一闪而过,问题仍然是:此处不应有 %%a。
    网盘传图片我不会,抱歉没图。

TOP

本帖最后由 yanni_enya 于 2023-12-19 15:19 编辑

回复 15# aloha20200628


    能用!! 需要保存成ANSI码,估计之前几位大神的代码也能用,只是我没另存为ANSI码就运行了,实在抱歉啊!

    试了半天,大概是这个样子:1、我们在music下能看到已播列表,不晓得在哪生成了一个7次播放都不会重复的待播列表(所谓的7天就是7天内,每天播一首),然后第8次播放就会重新生成一个新的7首曲目不重复播放的列表,依次循环。(music文件夹下生成的已播
                                              列表一旦删除,再次执行代码会随机生成新的待播列表)
                                         2、而且在电脑任意位置执行同一组代码,都是指向同一个随机生成的播放列表!
                                         3、修改播放数字后,生成的播放列表各是各,互不干扰。
    明白了这些代码也就好改了,非常感谢诸位大神,膜拜了

TOP

回复 19# aloha20200628


       您的代码目前我都是整体替换数字7,music文件夹里有多少曲目,我就替换成对应的数字。
       geq 后边跟的数字代表对应天数不重复播放歌曲,请问代码中多个7F仅仅是个名称是么?  list.7  后边的数字7也可以随意修改么?

TOP

回复 21# aloha20200628
  灰常感谢

TOP

回复 21# aloha20200628


    新的需求:music下歌曲越来越多,已播放列表的文件也多起来了,能否给已播放列表里记录的每首歌曲的前边把序号加上,这样看起来一目了然,不然太费眼睛了!

TOP

本帖最后由 yanni_enya 于 2023-12-26 09:14 编辑

回复 24# aloha20200628


        可以用!而且修改后直接跟在之前的已播列表记录后边,序号都是跟着的!

TOP

回复 26# _avatar_


    嗯,理解你说的。本身需求每天播放次数不多,前边发的那些假设就是每天播一首。
    每首歌单独一个bat是因为电脑平常需要静音状态,而每首歌长度又不同,为了播放时自动解除静音,播放后第一时间自动加静音,所以会给每首歌单独一个批处理。
    我也想代码越简单越好,只是个人能力确实有限,暂时想不到更好的办法。

TOP

回复 24# aloha20200628


    这周末刚好把歌曲放完了一轮,自动开启了第二轮播放,当前已放了一首了,问题是歌曲播放后生成的记录前边的编号没有从1开始,而是顺延了一个数字38,能否让序号再次从1开始?(当前37首歌)

TOP

回复 30# aloha20200628


    管用!

TOP

返回列表