标题: 排序mp3播放顺序,可处理长文件和含空格的文件名
[打印本页]
作者: thisiscx
时间: 2007-11-14 12:06
标题: 排序mp3播放顺序,可处理长文件和含空格的文件名
我编写的用dos批处理排序mp3播放顺序。请指正。
通常播放的顺序即为复制的顺序。因此,控制歌曲文件向U盘或mp3播放器的复制顺序即可产生按指定顺序播放的效果。顺序可以为修改时间、文件大小、文件名、扩展名的正反序。排序方式在dir的参数/O中指定,/O-d为将优先复制修改时间最新的文件。更多的排序方式参见dir /?中/O的内容。
在本示例批处理中默认U盘(或mp3播放器)盘符为J:。在D:有d:\music文件夹,歌曲文件在d:\music中。示例批处理lcopy.bat的内容为:
rem 批处理文件名:lcopy.bat
rem 功能:按指定顺序复制文件,顺序可以为修改时间、文件大小、文件名、扩展名的正反序
rem 排序方式在dir的参数/O中指定,/O-d为将优先复制修改时间最新的文件
rem 典型应用:按指定顺序复制mp3文件到U盘,通常复制的顺序即为播放的顺序
rem 参数:默认U盘盘符为J:。在D:有d:\music文件夹,mp3文件在d:\music中
@echo 按指定顺序复制mp3文件到U盘.............................................................
d:
cd\music
if exist (lcopy.txt) del lcopy.txt
dir /o-d /b >lcopy.txt
FOR /F "delims=;" %%i in (lcopy.txt) do copy /y "%%i" j:\music
del lcopy.txt
@echo 复制结束...............................................................................
作者: lxmxn
时间: 2007-11-14 16:14
这个命令就可以搞定了:
for /f "delims=" %%a in ('dir /o-d/s/b/a-d D:\music') do copy "%%a" J:\music
作者: zh159
时间: 2007-11-15 09:20
需要修改的地方:
既然用“>lcopy.txt”,那就可以不用“if exist (lcopy.txt) del lcopy.txt”,如果单纯用“dir /o-d /b >lcopy.txt”生成列表,会连新生成的“lcopy.txt”也会加入,改为“dir /o-d /b *.mp3>lcopy.txt”
作者: thisiscx
时间: 2007-11-15 16:26
谢谢lxmxn版主和zh159大侠。
作者: thisiscx
时间: 2007-11-15 16:43
请问一下,按lxmxn版主的语句执行时提示找不到文件,因为实际执行时“”中只有文件名,没有路径名,请问应该怎么办?
作者: lxmxn
时间: 2007-11-15 18:06
应该不会出现这个问题的,你是写成“D:\music”这个形式的么?
作者: thisiscx
时间: 2007-11-16 12:20
Quote: |
Originally posted by lxmxn at 2007-11-15 18:06:
应该不会出现这个问题的,你是写成“D:\music”这个形式的么? |
|
我是将你的语句复制下来,去掉了/s/a-d后直接用的。有问题吗?
作者: lxmxn
时间: 2007-11-16 12:41
当然有问题了。
你如果去掉的话,就这样吧:
for /f "delims=" %%a in ('dir /o-d/b D:\music') do copy "D:\music\%%a" J:\music
作者: thisiscx
时间: 2007-11-19 10:27
明白了,谢谢lxmxn版主
作者: thisiscx
时间: 2009-2-2 17:30
请问,怎样用copy命令按随机顺序复制文件呢?
作者: 523066680
时间: 2009-2-2 18:27
(我插个嘴)不得不惊讶一下…… 上面是 2007到2009之间的超长对话 ……