本文最后更新于 -1 天前,其中的信息可能已经有所发展或是发生改变。
注:将下方代码复制到记事本保存后,重命名保存的记事本格式为bat,如将复制.txt修改为复制.bat后双击运行即可。
bat文件只能放入需要复制(移动)的文件夹中,不能发在其他位置。
复制(移动)文件,同名文件自动覆盖
- 修改路径C:\Users\Administrator\Desktop\3\all\为你想复制(移动)的目标路径
- 下列代码为复制文件到目标路径,如果要移动,还需修改下方中copy为move
for /f "delims=" %%p in ('dir /b/ad') do copy %%p\*.* C:\Users\Administrator\Desktop\3\all\
pause
复制(移动)文件同名不覆盖且自动重命名
- 注:该方式会将文件夹下所有文件都复制(移动)到目标文件夹下
- 将下方代码中C:\Users\Administrator\Desktop\3\all修改为你的目标路径
- 若有重复文件,将自动重命名,命名格式为:文件名(具体数字).文件扩展名,列:1.txt,1(1).txt,1(2).txt
- 下方代码为复制,如果要变为移动,需要将copy改为move
@echo off & setlocal enabledelayedexpansion
if not "%~1"==":" (
md C:\Users\Administrator\Desktop\3\all
for /f "tokens=1*delims=/" %%i in ('"%~f0" :^|sort') do (
if /i "%%i"=="!strName!" (
set /a n+=1
move "%%j" "C:\Users\Administrator\Desktop\3\all\%%~ni(!n!)%%~xi"
) else (
set "n="
move "%%j" C:\Users\Administrator\Desktop\3\all\
)
set "strName=%%i"
)
pause
) else (
for /r %%i in (*) do echo %%~nxi/%%i
)