Continuando con la pregunta que hiceaquí:
Me gustaría preguntar cómo sería posible seguir realizando el movimiento, pero evitando la sobrescritura cambiando el nombre del archivo. Como por ejemplo agregar un sufijo al nombre del archivo con un número incremental.
Tal vezesta preguntaPodría ser de ayuda, pero no estoy seguro de cómo integrarlo con el archivo por lotes que hice hasta ahora.
Esto es lo que tengo hasta ahora:
@echo off
del /S *.json
for /f "tokens=*" %%f in ('dir /a:-D /s /b') do call :SUB_COPY "%%f" "I:\"
for /f "tokens=*" %%f in ('dir /a:D /s /b') do rd "%%f"
exit /B
:SUB_COPY source_item target_dir
if not "%~3"=="" (
>&2 echo ERROR: too many arguments!
)
set "SOURCE=%~f1"
if not defined SOURCE (
>&2 echo ERROR: missing argument!
exit /B 1
) else if not exist "%SOURCE%" (
>&2 echo ERROR: source not found!
exit /B 1
)
set "TARGET=%~f2"
if not defined TARGET set "TARGET=."
for /F "delims=" %%I in ('
2^> nul xcopy /L /S /E /Y /I "%SOURCE%" "%TEMP%\" ^| findstr /V /R "^[0-9]"
') do (
> con echo "%%~I"
call :SUB_DO "%%~I" "%TARGET%"
)
exit /B
:SUB_DO source_file target_dir
set "SUFFIX="
:CHECK
if exist "%~f2\%~n1%SUFFIX%%~x1" (
set /A SUFFIX-=1
) else (
2> nul md "%~f2"
> nul 2>&1 copy /B "%~f1" "%~f2\%~n1%SUFFIX%%~x1" && (
echo INFO: copied "%~nx1" as "%~n1%SUFFIX%%~x1".
) || (
>&2 echo ERROR: copying of "%~nx1" failed!
exit /B 1
)
exit /B
)
goto :CHECK
todavía tiene fallas cuando lo ejecuto, entro en una especie de bucle y comienzo a crear archivos con nombres extraños.