当文件名冲突时,如何重命名旧文件或将它们备份到文件夹中?


3

如您所知,如果选择“保留两个文件”,默认的Windows复制处理程序将重命名新文件。我可以使用什么程序重命名旧文件?或者更好,将所有旧文件放在同一位置的备份文件夹中,每个文件都有自己的路径结构?


使用Total Commander。它有这些选择。
pbies 2016年

Answers:


2

rsync --backup会做你想做的。您可以使用旧文件指定后缀--suffix,或使用旧文件移动到其他文件夹--backup-dir


非常感谢。这就是我一直在谷歌搜索这么长时间
Khanh 2016年

2

此脚本将所有重复文件%DestinationFolder%放入以变量$Backup_%date%_%time%%DestinationFolder%前缀的根目录下的备份目录中,默认情况下为%prefix%变量$Backup_。您可以自定义此值。

@echo off
set Folder=
set DestinationFolder=
set prefix=$Backup_
set suffix=%date%_%time%
set suffix=%suffix:/=-%
set suffix=%suffix::=-%
cd /d "%Folder%"
for /R %%a in (.) do (
    set PTH=%%a
    call :DUP
)
xcopy /herkvy "%Folder%" "%DestinationFolder%" 1>nul 2>&1
goto :eof

:DUP
set PTH=%PTH:\.=%
call set PTH=%%PTH:%Folder%=%%
type nul>"%tmp%\FileList"
for /f "tokens=4,* delims= " %%b in ('dir /a "%Folder%%PTH%" ^| find "/" ^| find /i /v "<DIR>"') do (
    echo %%c>>"%tmp%\FileList"
)
for /f "tokens=4,* delims= " %%d in ('dir /a "%DestinationFolder%%PTH%" ^| find "/" ^| find /i /v "<DIR>"') do (
    find /i "%%e" "%tmp%\FileList" 1>nul 2>&1 && (
         if not exist "%DestinationFolder%\%prefix%%suffix%%PTH%" md "%DestinationFolder%\%prefix%%suffix%%PTH%"
         move "%DestinationFolder%%PTH%\%%e" "%DestinationFolder%\%prefix%%suffix%%PTH%\%%e" 1>nul 2>&1
    )
)
exit /b

注意:请设置Folder为要备份的文件夹的路径,并DestinationFolder设置为目标路径(备份)文件夹没有Baclslash At The End!例:

正确:

set Folder=C:\project\files
set DestinationFolder=D:\Data\backup

错误:

set Folder=C:\project\files\
set DestinationFolder=D:\Data\backup\

谢谢你的帮助。我在等待的其他答案中找到了一个用于rsync的简洁GUI实用程序,称为Grsync。这应该满足我现在的需要。我会为多个备份情况保存这个。虽然这似乎遇到了一些问题:1。备份文件夹中的子目录被转换为无法访问的文件,没有扩展名。我只能看到根2.each子目录中的文件有自己的备份文件夹。有没有办法将它们全部收集到根目录下的备份文件夹中?
Khanh 2016年

对不起这是我的错。它曾经尝试将文件夹名称复制为文件,这就是为什么你得到没有扩展名的文件。我现在修好了。请原谅我,如果我不是一个批量极客,我尽我所能,但它不是那么快。如果要自定义备份文件夹名称或任何内容,请给我留言。
NetwOrchestration 2016年

哦不,不要抱歉哈哈。我不是你的老板。我很高兴网上的陌生人很想帮忙。我刚尝试了新批次。它现在似乎没有备份任何东西,只是覆盖旧文件并创建一个空的备份文件夹。你能调查一下吗?还有,有办法将每个文件的路径结构保留在备份文件夹中吗?我不想在执行还原任务时手动找到他们的位置。Grsync可以为我做这个,但我不知道如何使它命名为备份文件夹的日期+时间后缀
Khanh

我并不后悔,因为你是我的老板,因为它没有经过良好的测试。如果它创建了一个空备份文件夹,那是因为它只备份了要覆盖的文件!是否要将同步之前存在的所有文件放入备份文件夹?是的,可以保留文件夹结构,我正在更新我的答案。
NetwOrchestration 2016年

更新后,现在它将所有文件移动到备份文件夹(根据请求),无论是否重复。现在它非常快。祝好运!
NetwOrchestration 2016年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.