如何用批处理移动文件夹或文件并自动重命名?(需要移动的目录已经有同名文件夹或文件)

如何用批处理移动文件夹或文件并自动重命名?(需要移动的目录已经有同名的文件夹或文件)

@echo off
setlocal enabledelayedexpansion
set /p 目录=请选择移动到哪目录:
for /f %%i in ('dir /a-d /b') do (
set b=%%~xi
if not %%~nxi==%~nx0 (
if exist %cd%\a\%%~nxi (ren "%%i" "new-%%~nxi"&&move new-%%~nxi %目录%) else (
move %%i %目录%
)
)
)

另存为Bat放在要移动的文件夹:移动当前所有文件,除开bat本身到目标目录,如果目标存在此文件,则改名为《new文件名》追问

您好,比如要把一个名字为123的文件夹移动到一个叫456的文件夹,456文件夹已经有一个123文件夹,该怎么做?

追答

代码里不是有判断么,如果存在相同文件则把自己改成new-文件名
if exist %cd%\a\%%~nxi (ren "%%i" "new-%%~nxi"&&move new-%%~nxi %目录%
)

意思:如果存在同名文件,则把自己改名为new-文件名,再移到目标目录去
exist是存在的意思,后面接路径和文件,和if一起表示是否存在此文件,第一个括号里表示 存在则干嘛,else 后面括号里表示不存在则干嘛

温馨提示:答案为网友推荐,仅供参考
相似回答