[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理怎样复制文件,并修改其扩展名?

我要把一个文件夹下面(包括子目录)的所有.mp3文件复制一份,并保存为.mp4文件。用批处理怎么写啊?
我写了如下一个批处理
  1. @echo off
  2. 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 编辑 ]

楼主这样的代码要所有目录内不能有重名文件,否则会覆盖:
  1. @echo off
  2. for /r "D:\TTPmusic\Temp\temp222" %%a in (*.mp3) do (
  3. echo 正在处理%%a
  4. copy "%%a" "%%~na.mp4"
  5. )
  6. pause
复制代码
使用这个代码测试:
1,是否显示了所有文件?
2,copy 是否返回错误信息?
3,是否存在同名文件?
4,是否存在隐藏属性文件?
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

你这样写代码应该是没错的,是不是特殊符号啊文字方面的原因。还是空格什么造成的
菜鸟学批,一批一大批~~~~~~

TOP

谢谢楼上两位,我发现了,它生成的时候都生成在D:\TTPmusic\Temp\temp222目录下了,111文件夹下的MP3文件也生成在D:\TTPmusic\Temp\temp222目录下了。
我需要的是,原来在哪个文件夹下,就在相应的文件夹下面生成。请问应该怎么修改下?

[ 本帖最后由 zhxhhyqj 于 2011-1-10 21:12 编辑 ]

TOP

难道没有人知道吗?
各位哥哥姐姐,这个问题很急,麻烦你们了~,恳请不吝赐教

TOP

好像是都生成在批处理文件(那个.bat)所在的文件夹了。
怎么让它在对应的文件夹下生成?  是不是copy要加什么参数??

TOP

不修改扩展名:
  1. xcopy /cqiskrh "D:\TTPmusic\Temp\temp222\*.mp3" "指定目录"
复制代码

为什么要这样改扩展名呢?

[ 本帖最后由 hanyeguxing 于 2011-1-10 21:26 编辑 ]
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

原帖由 hanyeguxing 于 2011-1-10 21:25 发表
不修改扩展名:xcopy /cqiskrh "D:\TTPmusic\Temp\temp222\*.mp3" "指定目录"
为什么要这样改扩展名呢?


之所以这样,是有我的原因的。

我知道下面的代码
  1. for /r %%a in (*.mp3) do ren "%%a" "%%~na.mp4"
复制代码


这样是可以改扩展名的。
但是我现在是需要复制一份,然后再改,要跟原来的文件同时存在。所以要求复制后改,希望能帮忙实现下,谢谢

TOP

原帖由 hanyeguxing 于 2011-1-10 21:25 发表
不修改扩展名:xcopy /cqiskrh "D:\TTPmusic\Temp\temp222\*.mp3" "指定目录"
为什么要这样改扩展名呢?


另外,你上面的这段代码好像没起作用,指定目录我写了D:\TTPmusic\Temp\temp111\,
我是个批处理菜鸟,不太懂,还望能帮忙实现这个功能,谢谢!

[ 本帖最后由 zhxhhyqj 于 2011-1-10 21:42 编辑 ]

TOP

路径改下。或者把你上面的代码放在你要复制的文件夹里面执行都可以的
菜鸟学批,一批一大批~~~~~~

TOP

在原位置复制:
  1. for /r "D:\TTPmusic\Temp\temp222" %%a in (*.mp3) do copy "%%a" "%%~dpna.mp4"
复制代码
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

原帖由 yhcbird 于 2011-1-10 21:41 发表
路径改下。或者把你上面的代码放在你要复制的文件夹里面执行都可以的

可是D:\TTPmusic\Temp\temp222下面有好几百个文件夹,不然我也不需要批处理了,直接改就可以了。

TOP

原帖由 hanyeguxing 于 2011-1-10 21:44 发表
在原位置复制:for /r "D:\TTPmusic\Temp\temp222" %%a in (*.mp3) do copy "%%a" "%%~dpna.mp4"


高手~~~~,解决了,谢谢!!!!
真是太感谢了

TOP

回复 11楼 的帖子

感觉不要%%~dpna.mp4吧,用%%~pna.mp4可不可以啊

TOP

回复 14楼 的帖子

应该可以的。

[ 本帖最后由 mac007cn 于 2011-1-11 15:48 编辑 ]

TOP

返回列表