标题: [文件操作] 批处理怎样复制文件,并修改其扩展名? [打印本页]
作者: zhxhhyqj 时间: 2011-1-10 20:28 标题: 批处理怎样复制文件,并修改其扩展名?
我要把一个文件夹下面(包括子目录)的所有.mp3文件复制一份,并保存为.mp4文件。用批处理怎么写啊?
我写了如下一个批处理
- @echo off
- for /r "D:\TTPmusic\Temp\temp222" %%a in (*.mp3) do (copy "%%a" "%%~na.mp4")
复制代码
temp222下面还有个111文件夹。
发现只有temp222文件夹下面的.mp3文件生成了.mp4文件。但是子目录都没变,也就是111文件夹里面的.mp3没有生成一份.mp4文件。求各位大哥大姐们帮忙看看!
[ 本帖最后由 zhxhhyqj 于 2011-1-10 20:34 编辑 ]
作者: hanyeguxing 时间: 2011-1-10 20:35
楼主这样的代码要所有目录内不能有重名文件,否则会覆盖:- @echo off
- for /r "D:\TTPmusic\Temp\temp222" %%a in (*.mp3) do (
- echo 正在处理%%a
- copy "%%a" "%%~na.mp4"
- )
- pause
复制代码
使用这个代码测试:
1,是否显示了所有文件?
2,copy 是否返回错误信息?
3,是否存在同名文件?
4,是否存在隐藏属性文件?
作者: yhcbird 时间: 2011-1-10 20:48
你这样写代码应该是没错的,是不是特殊符号啊文字方面的原因。还是空格什么造成的
作者: zhxhhyqj 时间: 2011-1-10 20:52
谢谢楼上两位,我发现了,它生成的时候都生成在D:\TTPmusic\Temp\temp222目录下了,111文件夹下的MP3文件也生成在D:\TTPmusic\Temp\temp222目录下了。
我需要的是,原来在哪个文件夹下,就在相应的文件夹下面生成。请问应该怎么修改下?
[ 本帖最后由 zhxhhyqj 于 2011-1-10 21:12 编辑 ]
作者: zhxhhyqj 时间: 2011-1-10 21:11
难道没有人知道吗?
各位哥哥姐姐,这个问题很急,麻烦你们了~,恳请不吝赐教
作者: zhxhhyqj 时间: 2011-1-10 21:22
好像是都生成在批处理文件(那个.bat)所在的文件夹了。
怎么让它在对应的文件夹下生成? 是不是copy要加什么参数??
作者: hanyeguxing 时间: 2011-1-10 21:25
不修改扩展名:- xcopy /cqiskrh "D:\TTPmusic\Temp\temp222\*.mp3" "指定目录"
复制代码
为什么要这样改扩展名呢?
[ 本帖最后由 hanyeguxing 于 2011-1-10 21:26 编辑 ]
作者: zhxhhyqj 时间: 2011-1-10 21:36
原帖由 hanyeguxing 于 2011-1-10 21:25 发表
不修改扩展名:xcopy /cqiskrh "D:\TTPmusic\Temp\temp222\*.mp3" "指定目录"
为什么要这样改扩展名呢?
之所以这样,是有我的原因的。
我知道下面的代码
- for /r %%a in (*.mp3) do ren "%%a" "%%~na.mp4"
复制代码
这样是可以改扩展名的。
但是我现在是需要复制一份,然后再改,要跟原来的文件同时存在。所以要求复制后改,希望能帮忙实现下,谢谢
作者: zhxhhyqj 时间: 2011-1-10 21:40
原帖由 hanyeguxing 于 2011-1-10 21:25 发表
不修改扩展名:xcopy /cqiskrh "D:\TTPmusic\Temp\temp222\*.mp3" "指定目录"
为什么要这样改扩展名呢?
另外,你上面的这段代码好像没起作用,指定目录我写了D:\TTPmusic\Temp\temp111\,
我是个批处理菜鸟,不太懂,还望能帮忙实现这个功能,谢谢!
[ 本帖最后由 zhxhhyqj 于 2011-1-10 21:42 编辑 ]
作者: yhcbird 时间: 2011-1-10 21:41
路径改下。或者把你上面的代码放在你要复制的文件夹里面执行都可以的
作者: hanyeguxing 时间: 2011-1-10 21:44
在原位置复制:- for /r "D:\TTPmusic\Temp\temp222" %%a in (*.mp3) do copy "%%a" "%%~dpna.mp4"
复制代码
作者: zhxhhyqj 时间: 2011-1-10 21:44
原帖由 yhcbird 于 2011-1-10 21:41 发表
路径改下。或者把你上面的代码放在你要复制的文件夹里面执行都可以的
可是D:\TTPmusic\Temp\temp222下面有好几百个文件夹,不然我也不需要批处理了,直接改就可以了。
作者: zhxhhyqj 时间: 2011-1-10 21:48
原帖由 hanyeguxing 于 2011-1-10 21:44 发表
在原位置复制:for /r "D:\TTPmusic\Temp\temp222" %%a in (*.mp3) do copy "%%a" "%%~dpna.mp4"
高手~~~~,解决了,谢谢!!!!
真是太感谢了
作者: wolonga123 时间: 2011-1-11 13:59 标题: 回复 11楼 的帖子
感觉不要%%~dpna.mp4吧,用%%~pna.mp4可不可以啊
作者: mac007cn 时间: 2011-1-11 15:47
回复 14楼 的帖子
应该可以的。
[ 本帖最后由 mac007cn 于 2011-1-11 15:48 编辑 ]
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |