windows - 移动文件并保留重复项

标签 windows batch-file movefile

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

我正在使用

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

这并不能解决问题。有人可以帮忙吗?

感谢您的帮助。

最佳答案

这应该可以满足您的要求。我们在源文件夹中查找并搜索所有 .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"

关于windows - 移动文件并保留重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52213489/

相关文章:

ssh - wordmove 验证 movefile 部分 : production error This remote has not ssh nor ftp protocol defined

python - 如何将 csv 文件从笔记本文件夹传输到数据存储

python - 在 Python 中创建 NTFS 连接点

php - 将 PHP 扩展编译为非线程安全的

windows - 在 windows 中使用命令行提取 .tar.gz

Windows 批处理文件 - 去除前导字符

batch-file - 如何将大于和小于添加到批处理文件变量中

windows - 如何通过 START 命令运行多个命令

visual-studio-2008 - 在 Visual Studio 2008 中将控制台应用程序转换为 Windows 应用程序?