批量复制具有后续文件名的文件

批量复制具有后续文件名的文件

我目前有 robocopy 监控文件夹中文件的更改。当任何文件发生变化时,robocopy 都会通过复制来完成工作。问题是,我认为没有办法拥有同一文件的多个副本,因为 robocopy 会覆盖。结果应该与在同一文件夹中右键单击 > 复制然后右键单击 > 粘贴没有什么不同:

data.txt 
data - copy.txt 
data - copy(2).txt 
data - copy(3).txt 
.... - copy(n).txt

因此,我要么需要一个 robocopy 命令(虽然我没有看到任何命令)来复制和重命名后续文件,要么需要像 robocopy 这样可以监视和复制而不覆盖但执行某种后续命名约定的东西。

我花了 30 个小时寻找答案,但却没有找到我需要的答案,或者我不知道如何正确地寻找答案。

答案1

@echo off && setlocal

set "_files=LostIsland.ark,1153356741.arktribe,LocalPlayer.arkprofile"
set "_dirBk=D:\Program Files (x86)\Steam\steamapps\common\ARK\ShooterGame\Saved\LostIslandSavedArksLocal"

%:^)
for %%i in (%_files%)do 2>nul (
     fc "%_dirBk%\%%~nxi" "%_dirBk%\Backup Files\%%~nxi" /b | findstr /b "FC:.no.*" >nul || (
         call %:^O "%%~nxi" "%_dirBk%\Backup Files" 
        )
    )
    
timeout /t 60 /nobreak >nul & goto %:^)

%:^O
if "%~nx1" == "" (endlocal && exit /b)else pushd "%~2"
for /l %%L in (1,1,99)do if not exist .\"%~n1(%%~L)%~x1" (
     copy ..\"%~nx1" . && copy ..\"%~1" ".\%~n1(%%~L)%~x1"
     popd & exit /b
    )

相关内容