Board logo

标题: 如何将两个后缀的扩展名改成一个??如*.avi.rmvb 改成*.flv [打印本页]

作者: xlfj521     时间: 2007-4-21 03:08    标题: 如何将两个后缀的扩展名改成一个??如*.avi.rmvb 改成*.flv
如何将两个后缀的扩展名改成一个??如*.avi.rmvb 改成*.flv

作者: everest79     时间: 2007-4-21 03:13
你重复发贴

作者: flyinspace     时间: 2007-4-21 03:21    标题: 以下代码放在需要改名的文件夹内执行。
@echo off & setlocal enabledelayedexpansion
for /f "tokens=* " %%i in ('dir /b ^| findstr /i "avi.rmvb"') do (
set filename=%%i
set filename=!filename: =_-!
for /f "tokens=1,2,3 delims=. " %%i in ("!filename!") do set filename=%

%i.flv
set filename=!filename:_-= !
ren "%%i" "!filename!"
)
pause

呵,我还不是高手,写的代码太长了。。别见怪。

作者: lotus516     时间: 2007-4-22 01:39
@echo off & setlocal enabledelayedexpansion
for /f "tokens=* " %%i in ('dir /b ^| findstr /i "avi.rmvb"') do (
set str=%%i
set filename=!%str:~0,-8!
ren "%%i" "!filename!".flv
)
pause

作者: zh159     时间: 2007-4-22 01:47
楼上的全错了,在别的帖子里,LZ要求的是将*.rmvb 视频格式转换为*.flv格式

作者: 3742668     时间: 2007-4-22 01:49

@echo off
for %%i in (*.avi.rmvb) do call :Print "%%~ni"
pause
goto :Eof

:Print
echo %~n1.flv
goto :Eof

长时间不写批处理,感觉陌生了许多。
如果执行后打印的结果无误的话可以尝试传递%%i给:Print当作%2,然后更改echo为ren

作者: zh159     时间: 2007-4-22 01:53
作者: 3742668     时间: 2007-4-22 02:01
何必那么着相呢?
主要讨论思路而已。
再说无非就是把ren/echo替换换成mencoder.exe -ffourcc FLV1 -of lavf -lavfopts ……之类的命令罢了。