S
s1ave77
Gast
Erstmal zu den Bestätigungen beim Copy, das läßt sich abschalten in dem wir der kopierten Datei direkt einen Namen geben.
Das gibt den neuen Dateien den gefundenen Namen+Erweiterung direkt mit.
Allerdings ist
Der neue Ansatz wählt auf dem Backup-Laufwerk nur Dateien die es im Namen haben. Das verkleinert den Index und sollte dann schneller gehen.
Rich (BBCode):
@echo off
setlocal EnableExtensions
setlocal EnableDelayedExpansion
pushd "%~dp0"
cd "%~dp0"
if exist "search.txt" del /s /q "search.txt" >nul
for /r "e:\backup" %%A in (*.*) do echo %%A>>search.txt
for /f "delims=" %%i in (output.txt) do (
set "count="
for /f "delims=" %%A in (search.txt) do (
if "%%~nA"=="%%~ni" (
set /a count+=1
if "!count!"=="1" (
xcopy "%%A" /cherky "E:\gefunden\%%~nxA"
rem echo %%~nxA
) else (
xcopy "%%A" /cherky "E:\gefunden\%%~nA_!count!%%~xA"
rem echo %%~nA_!count!%%~xA
))))
pause
endlocal
exit
Das gibt den neuen Dateien den gefundenen Namen+Erweiterung direkt mit.
Ergänzung ()
Ordnernamen in die Betrachtung einzubeziehen ist in Batch limitiert.Marvolo schrieb:Zum einen sollen im Suchordner lediglich WhatsApp-relevante Dateien gefunden werden. Da sich im Suchordner aber auch Dateien befinden, auf die das nicht zutrifft, müssten sie vorher ausgeschlossen werden.
WhatsApp-Dateien haben einen sehr fest definierten Dateinamen und beinhalten fast immer ein "WA00..." im Dateinamen.
Allerdings ist
WA0
zusammen mit dem /L Switch (buchstabengetreue Suche) ein recht brauchbarer Such-String.Der neue Ansatz wählt auf dem Backup-Laufwerk nur Dateien die es im Namen haben. Das verkleinert den Index und sollte dann schneller gehen.
Rich (BBCode):
@echo off
setlocal EnableExtensions
setlocal EnableDelayedExpansion
pushd "%~dp0"
cd "%~dp0"
if exist "search.txt" del /s /q "search.txt" >nul
for /r "e:\backup" %%A in (*.*) do echo %%~nA | findstr /l "WA0" 1>nul && echo %%A>>search.txt
for /f "delims=" %%i in (output.txt) do (
set "count="
for /f "delims=" %%A in (search.txt) do (
if "%%~nA"=="%%~ni" (
set /a count+=1
if "!count!"=="1" (
xcopy "%%A" /cherky "E:\gefunden\%%~nxA"
rem echo %%~nxA
) else (
xcopy "%%A" /cherky "E:\gefunden\%%~nA_!count!%%~xA"
rem echo %%~nA_!count!%%~xA
))))
pause
endlocal
exit
Zuletzt bearbeitet von einem Moderator:
(Ende beigefügt)