批处理复制指定文件里的文件(包含子文件夹)到新指定文件夹,并自动重命名。

需要复制“F:\test\缩略图”和“F:\test\斜面图”里的所有文件至文件夹“F:\test\合并”(这个文件夹自动生成),
“F:\test\缩略图”和“F:\test\斜面图”有以各种不同型号命名的子文件夹,“AA 苹果4-4S”、“CC HTC T328d”等等,
“F:\test\缩略图”里的文件可以直接复制到“F:\test\合并”里,
“F:\test\斜面图”里的文件因为分了两种颜色的子文件夹,所以需要复制出来的同时,分别在文件名后面加“黑”或“透”,
(因为得到的文件是需要用在淘宝助理的,所以可以的话,顺便帮我把后缀jpg改为tbi。)

例:
F:\test\缩略图\AA 苹果4-4S\AA12081049.jpg
F:\test\斜面图\CD HTC T328t\黑色\CD12081049.jpg
F:\test\斜面图\CD HTC T328t\透明\CD12081049.jpg
……
批处理得到:
F:\test\合并\AA12081049.tbi;CD12081049黑.tbi;CD12081049透.tbi;……

pushd f:\test\
if not exist 合并 md 合并
xcopy /e 缩略图 合并
for /f "delims=" %%a in ('dir /a-d /b /s 斜面图\黑色') do (
copy "%%a"  "合并\%%~na黑%%~xa"
)
for /f "delims=" %%a in ('dir /a-d /b /s 斜面图\透明') do (
copy "%%a"  "合并\%%~na透%%~x"
)
for /f "delims=" %%a in ('dir /a-d /b /s 合并\*.jpg') do (
ren "%%a" "%%~na.tbi"
)
popd

追问

感谢您的帮助,不过结果却离我所需要的很远:
xcopy /e 缩略图 合并 > 这条命令的结果是合并文件夹里依然有缩略图里的子文件夹结构;
for /f "delims=" %%a in ('dir /a-d /b /s 斜面图\黑色') > 因为斜面图和黑色文件夹之间还有一层文件夹,比如“CD HTC T328t”,所以斜面图\黑色或斜面图\透明搜索不到任何需要复制的文件。

追答pushd f:\test\
if not exist 合并 md 合并
for /f "delims=" %%a in ('dir /a-d /b /s 缩略图') do (
copy "%%a"  "合并\%%a"
)
pushd 斜面图
for /f "delims=" %%a in ('dir /ad /b /s 黑色') do (
for /f "delims=" %%A  in ('dir /a-d /b /s "%%a" ') do (
copy "%%A"  "..\合并\%%~nA黑%%~xA"
)
)
for /f "delims=" %%a in ('dir /ad /b /s 透明') do (
for /f "delims=" %%A  in ('dir /a-d /b /s "%%a" ') do (
copy "%%A"  "..\合并\%%~nA透%%~xA"
)
)
popd
for /f "delims=" %%a in ('dir /a-d /b /s 合并\*.jpg') do (
ren "%%a" "%%~na.tbi"
)
popd

请问还有问题吗?

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-23
@echo off
if not exist "F:\test\合并" md "F:\test\合并"
for /r "F:\test\缩略图" %%i in (*.jpg) do copy "%%~i" "F:\test\合并\%%~ni.tbi"
for /r "F:\test\斜面图" %%i in (*.jpg) do set "p=%%~pi"&call copy "%%~i" "F:\test\合并\%%~ni%%p:~-3,1%%.tbi"

追问

又是高手一枚!!!经测试发现,因为“黑”和“透”是中文字符,运用时有兼容问题,如果想用H和T来代替“黑”和“透”加在文件名末尾可以吗?

批处理复制文件至指定文件夹,并自动重命名。
1、建立一个新文件夹,将所有学生作业文件夹对象复制一份放入其中。2、开始→运行,输入cmd,打开CMD窗口。3、在CMD窗口中,切换当前盘到目标文件夹所在盘,并切换当前文件夹到目标文件夹。4、在CMD窗口中,用dir命令查询所有符合条件的文件夹,并将显示结果重定向输出到当前文件下的rename.txt中。注意d...

批处理复制指定文件里的文件(包含子文件夹)到新指定文...
回答:pushd f:\\test\\if not exist 合并 md 合并xcopy \/e 缩略图 合并for \/f "delims=" %%a in ('dir \/a-d \/b \/s 斜面图\\黑色') do (copy "%%a" "合并\\%%~na黑%%~xa")for \/f "delims=" %%a in ('dir \/a-d \/b \/s 斜面图\\透明') do (copy "%%a" "合并\\%%~na透...

如何用CMD批处理提取所有子文件夹内容按文件夹名称命名并提取到一个...
和要提取文件的子文件夹放在一起即可,例如 和 文件夹1、文件夹2 放在一起.默认保留文件后缀名,如果不保留文件后缀名请删除 "%%~xj"

...文件到子文件夹,如果文件已经存在那么自动重命名,而不是进行替换...
批处理复制指定文件里的文件(包含子文件夹)到新指定文件夹,并自动重命名。例,需要复制“F:\/主图”和“F:\/副图”里的所有文件至文件夹“F:\/合并”(这个文件夹自动生成),“F:\/主图”里有文件AA12345678.jpg,“F:\/副图”里有子文件夹“黑色”和“透明”,子文件夹“黑色”和“透明”里...

批处理复制文件至指定文件夹并自动重命名
在Windows环境下,可以使用批处理脚本来实现文件的复制与自动重命名。以下是一个简单的批处理脚本示例,该脚本将指定文件夹(例如`C:\\SourceFolder`)中的所有文件复制到另一个文件夹(例如`C:\\DestinationFolder`),并在复制过程中自动为每个文件添加前缀(如`Copy_`)进行重命名,以避免名称冲突。```...

批处理:批量把文件夹里的图片放进子文件夹里, 文件夹格式:111\\222\\正卷...
批处理复制指定文件里的文件(包含子文件夹)到新指定文件夹,并自动重命名。斜面图”里的所有文件至文件夹“F:\\test\\合并”(这个文件夹自动生成);test\\缩略图”里的文件可以直接复制到“F:\\透明\\CD12081049,“F:\\缩略图”和“F;test\\斜面图”有以各种不同型号命名的子文件夹,“AA 苹果4-4S...

使用批处理copy批量复制指定目录下(包括子目录)的所有文件并重命名?
不清楚你的实际文件\/情况,仅以问题中的说明及猜测为据复制粘贴到记事本,另存为xx.bat,编码选ANSI<# :cls@echo offrem 将一个指定文件夹\/目录里的文件按照原来的目录结构拷贝\/备份\/复制到另一个指定的文件夹并在文件名称添加指定字符串后缀mode con lines=3000set #=Any question&set @=WX&set...

...复制某指定文件到该文件夹下并自动重命名此文件名为该文件夹名?_百...
echo off & title 拷贝指定文件到指定目录中,并重命名为该文件夹名 By 依梦琴瑶 ::预设指定文件 set File=E:\\1.txt if \/i "%~1"=="" (echo 请不要直接双击运行此脚本,而是拖动文件夹到此脚本文件图标上。set Sec=4 goto End )dir \/ad "%~1" >nul 2>nul || (echo 请拖动文件...

批处理 强制复制当前文件夹下的某些目录及子目录并包含以上目录内所有...
destination 指定新文件的位置和\/或名称。\/A 仅复制有存档属性集的文件,但不更改属性。\/M 仅复制有存档属性集的文件,并关闭存档属性。\/D:m-d-y 复制在指定日期或指定日期以后更改的文件。如果没有提供日期,只复制那些源时间比目标时间新的文件。\/EXCLUDE:file1[+file2][+file3].....

批量复制相同文件名的文件到一个文件夹里面自动重命名
用批处理 echo off&setlocal enabledelayedexpansion&for \/f "delims="a in ('dir \/s\/b .*')do set\/a a+=1&echo f|xcopy \/e \/y "%%a""D:\\new(!a!).*"这是当前文件夹(包括子文件夹)复制到D盘下,重命名为new(数字).后缀 复制到哪里你可以自己修改一下路径!那个"!a!"你可以不用...

相似回答