本帖最后由 437153 于 2015-5-10 01:44 编辑
- for %%i in (t\*.wav) do (lame.exe %%i %~ni.mp3 & del %%i)
复制代码 在目录t下面有很多wav格式,我用一个批处理实现将wav转换为MP3
但是这样不是很理想,我想实现只转换当前时间5分钟之前的文件。
我自己尝试写了一下,发现写不出来
我的思路是通过【for】的【%~tI】参数获取文件的【修改时间】
然后与当前日期%now%判断
set/a mm=%time:~3,2%-5
set now=%date:~0,10% %time:~0,3%%mm%
实在是写不出来该怎么判断了,只好厚颜来求教各位高手了!!
目前已经找到两个方法实现:
1、@CrLf 大神的第三方HASH工具实现- @echo off
- for /f "delims=" %%a in ('hash /nh /t::~-5m') do (lame.exe %%i %~ni.mp3 & del %%i)
- pause
复制代码 2、@hanyeguxing 版主的修改电脑日期格式的方法实现(代码完全看不懂,好神秘的感觉!!!)
http://bbs.bathome.net/viewthrea ... amp;page=1#pid68535
1,要求:
%%~ta 输出时间为2011-01-12 08:05
%date% 的格式为2011-01-12 ......
%time% 的格式为 8:27:35.25
2,当超过5分钟时,执行 echo 超过时间,可以根据需要改变
3,超时时间为5分钟,单位分,由命令 set/a K=%K: =%*60+1%time:~3,2%-100-5 设置。根据需要可以修改最后这个数字5,范围1-1439- @echo off
- set K=%time:~0,2%
- set/a K=%K: =%*60+1%time:~3,2%-100-5,D=1%date:~8,2%-100
- set/a D-=!!(%K:-=%-K),K+=!!(%K:-=%-K)*1440,H=K/60,F=K-60*H,M=1%date:~5,2%-100-!D,Y=%date:~0,4%-!M,M+=!M*12,"K=!(M-4)|!(M-6)|!(M-9)|!(M-11)","D+=!D*(!(M-2)*(28+!(Y%%4))+K*30+(!!(M-2)&!K)*31)"
- set M=0%M%&set D=0%D%&set F=0%F%&set H=0%H%
- for %%a in ("D:\日志.log") do if "%Y%-%M:~-2%-%D:~-2% %H:~-2%:%F:~-2%" gtr "%%~ta" echo 超过时间
复制代码 |