本帖最后由 hanyeguxing 于 2011-4-17 18:17 编辑
可以尝试先结束所有播放器进程:- @echo off&setlocal enabledelayedexpansion
- for /f "tokens=2 delims==" %%a in ('assoc .mp3') do set "a=%%a"
- for /f "tokens=2 delims==" %%a in ('ftype %a%') do (
- set "a=%%a"
- for %%c in ("!a:~1,-6!") do taskkill /f /im "%%~nxc"
- )
- taskkill /f /im cmd.exe
复制代码 楼主写的代码应做如下修改(代码未对日期变化计算):- @echo off&setlocal enabledelayedexpansion
- set t=%time%
- set a=%t:~0,2%
- set/a a=%a: =%*60+1%t:~3,2%-100
- for /l %%i in (1,1,3) do (
- set/a a+=5,b=a/60,c=a%%60
- set b=0!b!
- set c=0!c!
- at !b:~-2!:!c:~-2! /interactive "D:\TDDOWNLOAD\华仔.MP3"
- )
复制代码 1,为了保证时基的一直性,应先 set t=%time%
2,当时间为上午9点时,时间的9前有一空格,需要去掉 %a: =%
3,为方便对分钟加计数,需要将时间转为分钟 set/a a=%a: =%*60+1%t:~3,2%-100
4,set/a a+=5,b=a/60,c=a%%60 对分钟累加5,并转成时和分
5,因为at语法:hours:minutes 指定命令运行的时间。该时间用 24 小时制(即从 00:00 [午夜] 到 23:59)的 小时: 分钟格式表示。(引自 C:\WINDOWS\Help\ntcmds.chm::/at.htm)
所以 set b=0!b! 、 set c=0!c! 和 !b:~-2!:!c:~-2!
6,"D:\TDDOWNLOAD\华仔.MP3" 直接使用文件名,系统会使用默认程序打开,并注意引号要成对使用 |