文:
http://hi.baidu.com/523066680
最近要帮人把DVD里面的电影转换成avi格式的,内容大
而且分好几部分。转换的时候机子又卡,做不了其他事。想弄个批,等它
全部转换完了以后 ctrl+G 地响几声提示我回来。
刚开始还真没想到好法子~ 想用核对文件名的方式。不过人家是先建
立文件名,再往里面写数据的,判断文件名是不适合了。还是是通过判断
数据大小了,不知道转换后的,但是它在转换,数据就在变化~
策略:
每隔ping -n 5 127.1>nul 的时间检查一次数据,对比上一次的,如果不
变化,就是over了~ CTRL+G 得出的那个符号 响几下。忙这忙那的我就听到啦。
后来第一个转换好就响了,闷~ 原来跳下个文件间隔时间挺久的,那就
ping -n 10 127.1>nul 吧。
@echo off
setlocal enabledelayedexpansion
set now=x
:loop
for /f "tokens=3" %%a in ('dir *.avi ^|find "个文件"') do (
echo, %date% %time:~0,-3% !now! 约!now2!MB
if "!now!"=="%%a" (【这里应是Ctrl+G得出的符号】>nul &exit) else (set "now=%%a")
set /a now2=!now:,=!/1048576
)
ping -n 10 127.1>nul
goto :loop
-------------------------------------------------------------------
后续: 这闷完还有别的闷,这次还要转换CD碟的音乐wma到mp3 判断还是用上面的了
CD碟比较郁闷的是 歌曲都是编号的,歌名要自己按着包装上的一个个打~
鼠标一个个点我可不干,还是弄个文本先按顺序写好再用批量改。然后转换
-----------------RenForCd----------------
::为了方便给CD复制来的音乐改上歌名(本来的是编号)
::在name.x中按包装的歌名写好,执行本batch
@echo off
setlocal enabledelayedexpansion
set "op=echo"
:a
set /a a=1
for /f "tokens=*" %%a in ('type name.x') do (
if !a! lss 10 (set x=0!a!) else (set x=!a!)
%op% ren "!x! 曲目 !a!.wma" %%a.wma
set /a a+=1
)
if "%op%"=="echo" (
echo,are you sure ?
pause
set "op="
goto :a
)
exit
-----------------------------------------
最后还有个问题的,转换好的歌曲跟以前复制到u盘过的歌曲是在一个目录下的,
又要区分出来复制进去。划分文件夹是好,不过一个个建立也不爽快。
难道要通过判断建立时间来复制?还好伟大的cmd提供了xcopy
看看/d参数:
/D:m-d-y 复制在指定日期或指定日期以后更改的文件。
如果没有提供日期,只复制那些源时间
比目标时间新的文件。
这个跟复制过的、没复制过的什么关系?复制来的文件,建立时间会不同,但是
是同样的。上面这个 /D 判断的就是“更改时间”。
同一个文件,更改时间都一样,就跳过了。剩下的都复制过去。
而且,这种判断有更新的话还可以判断出来并复制过去~
一个浅浅的 cpynew.bat
@echo off
set source="E:\ExistSpace\剪切单曲"
set way="K:\DVDmusic"
xcopy %source% %way% /d