标题: [文件操作] BAT如何批量复制当前目录(包括子目录)下的特定类型文件到一个文件夹里? [打印本页]
作者: 86223125 时间: 2013-11-20 14:59 标题: BAT如何批量复制当前目录(包括子目录)下的特定类型文件到一个文件夹里?
求代码:批量复制当前目录(包括子目录)下的特定类型文件到一个文件夹里,重名自动修改,并生成导出清单txt
【复制出来的重名文件】自动在后面添加数字,如:“文件名”、“文件名1”、“文件名2”等等。
如果可以,希望复制的重名文件自动改名的同时源文件也同时修改,如:
【源文件】 【复制出时改名】 【同时修改源文件名】
F:\上报制卡\1\文件名 F:\上报制卡\备份\文件名 F:\上报制卡\1\文件名
F:\上报制卡\2\文件名 F:\上报制卡\备份\文件名1 F:\上报制卡\2\文件名1
F:\上报制卡\3\文件名 F:\上报制卡\备份\文件名2 F:\上报制卡\3\文件名2
最后生成复制出的文件路径、改名清单txt
作者: foxJL 时间: 2013-11-20 15:19
特定类型是什么类型?
作者: 86223125 时间: 2013-11-20 17:22
回复 1# 86223125
比如jpg txt
作者: changedirectory 时间: 2013-11-22 10:45
本帖最后由 changedirectory 于 2013-11-22 21:51 编辑
本人是新手,请高手指点,谢谢!- @echo off&setlocal enabledelayedexpansion
- attrib +s %~f0"
- for /r %%a in (*) do (
- set str=%%~dpa&& set str=!str:~-2,1!
- set /a num=!str!-1
- if !str!==r (
- echo off
- ) else (
- if !num!==0 (
- ren "%%a" "%%~nxa"
- ) else (
- ren "%%a" "%%~na!num!%%~xa"
- )
- )
- )
- for /r %%b in (*) do (
- md backup&xcopy "%%b" backup >nul 2>nul
- )
- pause
复制代码
作者: terse 时间: 2013-11-22 12:52
- @echo off
- set "fph=f:\test\备份"
- set "ext=*.txt *.bat"
- setlocal enabledelayedexpansion
- if not exist "%fph%\" md "%fph%\"
- (for /f "delims=" %%i in ('dir /b/s/a-d %ext%') do (
- if not exist "%fph%\%%~nxi" (
- copy "%%i" "%fph%\%%~nxi" >nul 2>nul
- echo "%%i" ==^> "%fph%\%%~nxi"
- ) else (
- set n=0
- call:lp "%%~ni" "%%~xi" "%%~dpi"
- copy "%%i" "%fph%\%%~ni!n!%%~xi" >nul 2>nul
- ren "%%i" "%%~ni!n!%%~xi"
- echo "%%~dpi%%~ni!n!%%~xi" ==^> "%fph%\%%~ni!n!%%~xi
- )
- ))>清单.txt
- pause&exit
- :lp
- set /a n+=1
- if exist "%fph%\%~1%n%%~2" goto lp
- if exist "%~3\%~1%n%%~2" goto lp
- goto:eof
复制代码
作者: apang 时间: 2013-11-22 13:33
假设相同文件名的重复个数不超过20- @echo off
- set "SrcDir=F:\上报制卡"
- set "DstDir=D:\备份"
- for /r "%SrcDir%\" %%a in (*.jpg *.txt) do (
- if exist "%DstDir%\%%~nxa" (
- set flag=1
- for /l %%b in (1 1 20) do (
- if defined flag (
- if not exist "%DstDir%\%%~na%%b%%~xa" (
- copy "%%a" "%DstDir%\%%~na%%b%%~xa"
- set "flag="
- echo,%%a %DstDir%\%%~na%%b%%~xa>>List.txt
- )
- )
- )
- ) else (
- copy "%%a" "%DstDir%\"
- echo,%%a %DstDir%\%%~nxa>>List.txt
- )
- )
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |