我目前有 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
)