批处理 随机复制所需要数量的文件 同名文件自动重命名

\u6279\u5904\u7406 \u6279\u91cf\u590d\u5236\uff0c\u9047\u5230\u540c\u540d\u6587\u4ef6\u81ea\u52a8\u91cd\u547d\u540d\u3002

\u6279\u5904\u7406\u7a0b\u5e8f\uff1a
@echo off
setlocal enabledelayedexpansion
set s=D:\m1
set d=D:\m2
pushd %s%
(for /f "tokens=*" %%i in ('dir/s/b/a-d') do (
set /a n=1
if exist "%d%\%%~nxi" for /f %%j in ('dir/b "%d%\%%~nxi"^|find /c /v ""') do set /a n=%%j+1
if !n!==1 (copy "%%i" "%d%\%%~nxi") else copy "%%i" "%d%\%%~ni_!n!%%~xi"))

\u6279\u5904\u7406(Batch)\uff0c\u4e5f\u79f0\u4e3a\u6279\u5904\u7406\u811a\u672c\u3002\u987e\u540d\u601d\u4e49\uff0c\u6279\u5904\u7406\u5c31\u662f\u5bf9\u67d0\u5bf9\u8c61\u8fdb\u884c\u6279\u91cf\u7684\u5904\u7406\uff0c\u901a\u5e38\u88ab\u8ba4\u4e3a\u662f\u4e00\u79cd\u7b80\u5316\u7684\u811a\u672c\u8bed\u8a00\uff0c\u5b83\u5e94\u7528\u4e8eDOS\u548cWindows\u7cfb\u7edf\u4e2d\u3002\u6279\u5904\u7406\u6587\u4ef6\u7684\u6269\u5c55\u540d\u4e3abat \u3002\u76ee\u524d\u6bd4\u8f83\u5e38\u89c1\u7684\u6279\u5904\u7406\u5305\u542b\u4e24\u7c7b\uff1aDOS\u6279\u5904\u7406\u548cPS\u6279\u5904\u7406\u3002PS\u6279\u5904\u7406\u662f\u57fa\u4e8e\u5f3a\u5927\u7684\u56fe\u7247\u7f16\u8f91\u8f6f\u4ef6Photoshop\u7684\uff0c\u7528\u6765\u6279\u91cf\u5904\u7406\u56fe\u7247\u7684\u811a\u672c\uff1b\u800cDOS\u6279\u5904\u7406\u5219\u662f\u57fa\u4e8eDOS\u547d\u4ee4\u7684\uff0c\u7528\u6765\u81ea\u52a8\u5730\u6279\u91cf\u5730\u6267\u884cDOS\u547d\u4ee4\u4ee5\u5b9e\u73b0\u7279\u5b9a\u64cd\u4f5c\u7684\u811a\u672c\u3002\u66f4\u590d\u6742\u7684\u60c5\u51b5\uff0c\u9700\u8981\u4f7f\u7528if\u3001for\u3001goto\u7b49\u547d\u4ee4\u63a7\u5236\u7a0b\u5f0f\u7684\u8fd0\u884c\u8fc7\u7a0b\uff0c\u5982\u540cC\u3001Basic\u7b49\u9ad8\u7ea7\u8bed\u8a00\u4e00\u6837\u3002\u5982\u679c\u9700\u8981\u5b9e\u73b0\u66f4\u590d\u6742\u7684\u5e94\u7528\uff0c\u5229\u7528\u5916\u90e8\u7a0b\u5f0f\u662f\u5fc5\u8981\u7684\uff0c\u8fd9\u5305\u62ec\u7cfb\u7edf\u672c\u8eab\u63d0\u4f9b\u7684\u5916\u90e8\u547d\u4ee4\u548c\u7b2c\u4e09\u65b9\u63d0\u4f9b\u7684\u5de5\u5177\u6216\u8005\u8f6f\u4ef6\u3002\u6279\u5904\u7406\u7a0b\u5e8f\u867d\u7136\u662f\u5728\u547d\u4ee4\u884c\u73af\u5883\u4e2d\u8fd0\u884c\uff0c\u4f46\u4e0d\u4ec5\u4ec5\u80fd\u4f7f\u7528\u547d\u4ee4\u884c\u8f6f\u4ef6\uff0c\u4efb\u4f55\u5f53\u524d\u7cfb\u7edf\u4e0b\u53ef\u8fd0\u884c\u7684\u7a0b\u5e8f\u90fd\u53ef\u4ee5\u653e\u5728\u6279\u5904\u7406\u6587\u4ef6\u4e2d\u8fd0\u884c\u3002

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::\u529f\u80fd\u7b80\u4ecb\uff1a
::\u641c\u7d22\u5e76\u590d\u5236\u4e00\u4e2a\u6216\u591a\u4e2a\u78c1\u76d8\u4e2d\u7684\u67d0\u4e00\u7c7b\u578b(\u540e\u7f00\u540d)\u7684\u6587\u4ef6
::\u641c\u7d22\u5e76\u590d\u5236\u67d0\u6587\u4ef6\u5939\u53ca\u5176\u5b50\u6587\u4ef6\u5939\u4e0b\u67d0\u7c7b\u6587\u4ef6
::\u6587\u4ef6\u5c06\u88ab\u590d\u5236\u5230\u672cbat\u6240\u5728\u76ee\u5f55\u4e0b\u7684\u4e00\u65b0\u5efa\u6587\u4ef6\u5939\u4e2d
::\u81ea\u52a8\u91cd\u547d\u540d\u540c\u540d\u6587\u4ef6\uff0c\u907f\u514d\u8986\u76d6
::\u81ea\u52a8\u521b\u5efa\u590d\u5236\u6e05\u5355\uff0c\u8bb0\u5f55\u590d\u5236\u8def\u5f84\uff0c\u4ee5\u53ca\u91cd\u547d\u540d\u6587\u4ef6\u7684\u539f\u6587\u4ef6\u540d\u548c\u65b0\u6587\u4ef6\u540d
::\u81ea\u52a8\u8ba1\u7b97\u590d\u5236\u6587\u4ef6\u6570\u91cf\uff0c\u5e76\u4fdd\u5b58\u4e8e\u6e05\u5355\u4e2d\uff0c\u6e05\u5355\u4f4d\u4e8ebat\u6240\u5728\u76ee\u5f55\u3002
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@echo off&setlocal enabledelayedexpansion
title \u3010\u7c7b\u6587\u4ef6\u63d0\u53d6\u3011 \u3000 \u3000 \u3000 \u6d4b\u8bd5\u73af\u5883\uff1a Windows XP SP3
SET HardDisK=C D E F G H I J K L M N O P
:str
color !time:~7,1!!time:~9,1!
set OUT=\u00a7&set REJ=&set DSK=&set DIS=&cls&set "LJ=%cd%"&echo.
echo \u256d\u2312\u256e \u256d \ufe4c\u256e\u256d \u223d\u256e o\u03bf\u041e\u25cb \u00a4 \u8272\u5f69\u4e0d\u7406\u60f3\uff1f\u6309\u4e24\u6b21ENTER\u952e\uff01
echo \ufe36\ufe36 (o"."o)(o-.-o) , \ufe36\ufe36
echo \u25e4\uffe3\uffe3~~\ufe4a\ufe38\uffe3\ufe38\uffe3\ufe38\uffe3\uffe3\u25e5\u203b\u203b\u203b\u203b\u203b\u203b\u203b\u203b\u203b\u203b\u203b\u203b\u203b\u203b\u203b\u25e3
echo ( \u25c6 \u25c6 \u2014\u2014\u2014\u2014\u672c\u6279\u5904\u7406\u53ef\u7528\u4e8e\u6587\u4ef6\u5f52\u7c7b\u5b58\u6863\u2014\u2014\u2014\u2014 \u25c6 \u25c6 )
echo ( \u25c6 \u25c6 \u25c6 \u25c6 )
echo ( \u25c6 \u25c6 \u6587\u4ef6\u5c06\u88ab\u62f7\u8d1d\u5230\u672c\u6279\u5904\u7406\u6240\u5728\u76ee\u5f55\u4e0b\u5e76\u521b\u5efa\u6e05\u5355 \u25c6 \u25c6 )
echo ( \u25c6 \u25c6 \u25c6 \u25c6 )
echo ( \u25c6 \u25c6 \u2014\u2014 By\uff1a\u56fe\u817e 2011-03-29 \u25c6 \u25c6 )
echo \u2570\u25e5\u203b\u203b\u203b\u203b\u203b\u203b\u203b\u203b\u203b\u203b\u25e3\uff3f\uff3f\uff3f\uff3f\uff3f\uff3f\uff3f\uff3f\uff3f\uff3f\uff3f\uff3f\uff3f\uff3f\uff3f\u25e2
echo.
for %%i in (%HardDisK%) do (if exist %%i: (set DSK=!DSK! %%i))
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
echo \u2605\u5f53\u524d\u78c1\u76d8 "!DSK! " \u2014\u2014(\u8bf7\u8f93\u5165\u4e0d\u9700\u641c\u7d22\u7684\u78c1\u76d8\u76d8\u7b26)&echo.
echo (\u4f8b\uff1a\u8f93\u5165"CEF",\u5373\u53ea\u5bf9C\u3001E\u3001F\u4ee5\u5916\u7684\u78c1\u76d8\u8fdb\u884c\u641c\u7d22\u548c\u590d\u5236)&echo.
echo \u4f60\u53ef\u4ee5\u5c06\u76ee\u6807\u6587\u4ef6\u5939\u62d6\u5165\u672c\u7a97\u53e3\uff0c\u53ea\u5728\u5176\u76ee\u5f55\u4e0b\u641c\u7d22\u3002\u3002\u3002
echo.&set/p OUT= (\u62d6\u5165\u6587\u4ef6\u5939\u5230\u672c\u7a97\u53e3\u540e\u9700\u5355\u51fb\u7a97\u53e3\uff0c\u518d\u6309ENTER\u952e\u786e\u8ba4)\uff1a&cls
set err=0&set fd=0
if "!OUT!" neq "\u00a7" if exist !OUT! (
cd !OUT!||echo \u8def\u5f84\u4e0d\u6b63\u786e\uff0c\u4e0d\u80fd\u5305\u542b\u6587\u4ef6\u540d\uff01&&pause&&goto str
set fd=1&set DIS= !OUT!&goto Suffix)
for %%i in (!DSK!) do (
if /i "!OUT:%%i=!" equ "!OUT!" (set DIS=!DIS! %%i)
if /i "!OUT:%%i=!" neq "!OUT!" (set REJ=!REJ! %%i&set err=1))
if !err!==1 (set REJ=\uff0c\u4e0d\u641c\u7d22\u76d8"!REJ! ") else (set DIS=!DSK!)
:Suffix
color 3f&set SUF=&set err=0&echo.&echo.
if "!DIS!"=="" (color CF&set err=1&set DIS= \u6ca1\u6709\u4e86\uff0c\u8fd4\u56de\u5427\u3002\u3002\u3002)
echo \u786e\u8ba4\u641c\u7d22\u5bf9\u8c61 "!DIS! " !REJ!&echo.
echo \u8bf7\u8f93\u5165\u6587\u4ef6\u540e\u7f00\u540d(\u5982 MP3\u3001TXT\u3001DOC\uff0c\u4e0d\u533a\u5206\u5927\u5c0f\u5199)&echo.
set/p SUF= \u2014\u2014(\u4e0d\u8f93\u5165\u5185\u5bb9\u6309ENTER\u952e\u8fd4\u56de)\uff1a
if "!SUF!" neq "" set SUF=!SUF: =!
if "!SUF!"=="" (goto str)
if "!err!"=="1" goto str
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
set ch=&set "tme="&set num=0&set "FL=*.!SUF!"
for /f "tokens=1,* delims=. " %%i in ('echo !SUF!') do (
if "%%j"=="" (set "SUF=!SUF:.=!"&set "FL=*.!SUF!" ) else (
echo.&set/p ch=\u662f\u8981\u641c\u7d22\u6587\u4ef6\u201c!SUF!\u201d\u5417\uff1f\uff08Y/N\uff09[Y]\uff1a
if /i "!ch!" neq "n" set "FL=!SUF!"))
if exist File_!SUF! (set ch=&echo.
set/p ch=\u201cFile_!SUF!\u201d\u5df2\u5b58\u5728\uff0c\u662f\u5426\u66ff\u6362\uff1f\uff08Y/N\uff09[Y]\uff1a
if /i "!ch!"=="n" (set tim=!time:.=!
set dat=!date:~0,10!&set dat=!dat:-=!
set "tme=_!dat!!tim::=!") else (
rd /s /q File_!SUF! 2>nul
del /q !SUF!_CopyList.TXT 2>nul))
md "!LJ!\File_!SUF!!tme!"&cls
set "FIL=!LJ!\File_!SUF!"&set "LIT=!LJ!\!SUF!_CopyList"
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
if %fd%==0 (
for %%i in (!DIS!) do ( CD/D %%i:&cd\&echo.
echo \u25e3\u6b63\u5728\u641c\u7d22 %%i \u76d8\u4e0b "%SUF%" \u6587\u4ef6\u3002\u3002\u3002
echo.&set cot=!num!&call :go)) else ( cd/d !DIS!
echo.&echo \u25e3\u6b63\u5728\u641c\u7d22!DIS!\u4e0b "%SUF%" \u6587\u4ef6\u3002\u3002\u3002
echo.&set cot=!num!&call :go)
set ovr=!SUF!\u6587\u4ef6\u603b\u6570:!num! \u65e5\u671f:%date% %time:~0,8%
(echo.&echo \u2014\u2014%ovr%)>>"!LIT!!tme!.TXT"
if !num!==0 ( rd /s /q "!FIL!!tme!" 2>nul
del /q "!LIT!!tme!.TXT" 2>nul
echo.&echo \u65e0\u6b64\u7c7b\u578b\u6587\u4ef6\uff01&echo.)
color 31&echo.
if !num! neq 0 (echo \u5df2\u590d\u5236\u5230\uff1a"!FIL!!tme!"
echo \u590d\u5236\u6e05\u5355\uff1a"!LIT!!tme!.TXT"&echo.)
echo \u590d\u5236\u6587\u4ef6\u603b\u6570\uff1a!num!\uff0c\u6309\u4efb\u610f\u952e\u8fd4\u56de...
pause>nul&cls&cd/d !LJ!&goto Suffix
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::\u975e\u6e05\u5355\u6587\u4ef6?>>\u62f7\u8d1d\u8def\u5f84\u4e3a\u4e0d\u4e3a\u5b58\u653e\u8def\u5f84?>>\u91cd\u540d?[\u91cd\u547d\u540d\u9884\u8bbe]>>\u63d0\u53d6
:go
for /f "delims=" %%j in ('dir /a /s /b !FL!') do (
set "lst=%%~nxj"&set "cpf=%%~dpj"
if "!lst:_CopyList=!"=="!lst!" (
if "!cpf:File_=!"=="!cpf!" (
set rne=&set rea=&set rna=\u2605
if exist "!FIL!!tme!\%%~nxj" (
set tim=!time:.=!&set tim=!tim::=!
set rna=\u2606&set rea= \u2605\u91cd\u547d\u540d\uff1a"%%~nj-\u2606!tim!%%~xj"
set "rne=\%%~nj-\u2605!tim!%%~xj")
COPY /y "%%j" "!FIL!!tme!!rne!" >nul
echo !rna!\u5df2\u590d\u5236\uff1a"%%j"&set/a num+=1
echo !rna!"%%j"!rea!>>"!LIT!!tme!.TXT")))
set/a cot=!num!-!cot!
echo.&echo %cd%\u76ee\u5f55\u4e0b\u590d\u5236!SUF!\u6587\u4ef6\u6570\uff1a!cot! "\u2606"\u8868\u793a\u5df2\u91cd\u547d\u540d\u6587\u4ef6
echo ==============================================================
goto :eof
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

-----------------------------------------------------------
@echo off
set B=%time:~-1%
for /f "delims=" %%A in ('dir/a-d/s/b D:\1') do (
set /a %B+=1
if not exist "d:\2\" (
md "d:\2"
)
if not exist "d:\2\%%~nxA" (

copy "%%~A" "d:\2\%%~nxA"
) ELSE (
copy "%%~A" "d:\2\%%~nA_%B%%%~xA"
)
)
pause
--------------------------------------------------------------

PS:以上代码处理所有文件
重了自动更名,以10个随机数
修改【'dir/a-d/s/b D:\*.???1'】其内的(?)号也说是文件 的扩展名,你可以处理不同文件。

@Echo Off&Setlocal Enabledelayedexpansion
Set /p m=请输入你要创建的数量:
For /f "delims=" %%i in ('dir /a-d /b /s "D:\1\*.png"') do (
Set /a n+=1&Set "[fn!n!=%%~nxi")
For /l %%a in (1,1,%m%) do (Call :r
If not Exist "D:\2\!r!" (Copy "%~dp01\!r!" "D:\2\!r!" >nul) else (
Copy "D:\1\!r!" "D:\2\!r1!.png" >nul))
Pause
Exit
:r
Ping -n 1 127.1>nul
Set /a r0=%random%%%%n%+1
Set /a r1=%random%+%r0%
Call Set r=%%[fn!!r0!!%%
Goto :eof

请把*.png 替换为你的图片格式.可以输入创建文件数量.



@echo off
setlocal enabledelayedexpansion
set num=0
for /f "tokens=*" %%i in ('dir /a-d /b *.jpg') do (
set /a num+=1
)
set /a x=%random%%%(!num!-0)+(0+1)
for /f "delims=: tokens=1,2" %%i in ('dir /a-d /b *.jpg ^| findstr/n .*') do (
if %%i==!x! (
if not exist "d:\2\%%j" (
xcopy %%j d:\2
) else (xcopy %%j !x!.jpg)
)
for /f "delims=:" %%a in ('dir /a-d /b d:\2\*.jpg ^| findstr/n') do (
if %%i==50 goto end
)
)
:end

只针对jpg文件,满50个jpg就停止,有重的就自动更名,以随机数额更名

扩展阅读:bat批处理命令大全 ... 多头报送 数据重复 减负 ... excel快速复制指定数量 ... bat批处理 读取excel ... ping 命令做成批处理 ... 一直计算复制所需时间 ... 批处理批量复制文件 ... 电脑如何粘贴复制数量表 ... excel筛选结果和数量复制 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网