移动文件并保持重复

问题描述 投票:1回答:1

我试图通过将(1)附加到其中一个重复文件来移动文件并保留重复的文件名。

我正在使用

cd /D "source directory"
move *.JPG "target directory"

这没有解决问题。有人可以帮忙吗?

感谢您的帮助。

windows batch-file movefile
1个回答
0
投票

这应该做你想要的。我们在源文件夹中搜索并搜索所有.jpg文件,然后检查它是否存在,如果存在,使用计数器附加数字,如果它不存在,我们只需移动它。

@echo off
setlocal enabledelayedexpansion
set "source=D:\source\"
set "dest=D:\destination\"
set /a cnt=0
for /f "tokens=*" %%a in ('dir /S /B /A-D "%source%*.jpg"') do for /f "tokens=*" %%b in ('dir /B "%%a"') do if exist "%dest%\%%b" (
        set "ext=%%~xa"
        set "fname=%%~na"
        if exist "%dest%\!fname!(!cnt!)!ext!" (set /a cnt=!cnt!+1)
        set /a cnt=!cnt!+1
        move "%%a" "%dest%\!fname!(!cnt!)!ext!"
) else move "%%a" "%dest%\%%b"
© www.soinside.com 2019 - 2024. All rights reserved.