Keine Kopie von Dateien, die einen Unterstrich in der Dateierweiterung haben.
Hallo,
ich möchte über ein Batch Script Dateien kopieren.
Dateien, die eine bestimmte Erweiterung haben (z.B. *.zip) möchte ich nicht kopieren.
Diese Dateierweiterungen habe ich in der Datei "nocopy.txt" angegeben.
Das ganze funktioniert auch.
Mein Problem:
Ich möchte auch Dateien, die einen Unterstrich [_] in der Erweiterung haben nicht kopieren.
z.B.:
*.xls_
*.txt_20130814
*.docx_old
also immer wenn nach der eigentlichen Dateierweiterung noch ein Unterstrich folgt.
Dabei ist völlig egal was nach dem Unterstrich folgt, d.h. es kann auch nichts mehr folgen.
Letzlich sollen alle Dateien nicht kopiert werden, in deren Erweiterung ein Unterstrich vorkommt.
Wie muss hierzu der Eintrag in "nocopy.txt" lauten?
ich möchte über ein Batch Script Dateien kopieren.
Dateien, die eine bestimmte Erweiterung haben (z.B. *.zip) möchte ich nicht kopieren.
Diese Dateierweiterungen habe ich in der Datei "nocopy.txt" angegeben.
Das ganze funktioniert auch.
xcopy "%Quelle1%\*.*" "%Ziel1%" /s /y /i /d /r /exclude:nocopy.txt
Mein Problem:
Ich möchte auch Dateien, die einen Unterstrich [_] in der Erweiterung haben nicht kopieren.
z.B.:
*.xls_
*.txt_20130814
*.docx_old
also immer wenn nach der eigentlichen Dateierweiterung noch ein Unterstrich folgt.
Dabei ist völlig egal was nach dem Unterstrich folgt, d.h. es kann auch nichts mehr folgen.
Letzlich sollen alle Dateien nicht kopiert werden, in deren Erweiterung ein Unterstrich vorkommt.
Wie muss hierzu der Eintrag in "nocopy.txt" lauten?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 214412
Url: https://administrator.de/contentid/214412
Ausgedruckt am: 25.11.2024 um 17:11 Uhr
8 Kommentare
Neuester Kommentar
@ Endoro
Damit die Liste komplett (es sollen ja auch Unterordner kopiert werden), aber nicht zu umfangreich wird, vielleicht besser
Alternative: Kopieren und danach
- könnte aber bei schreibgeschützten / versteckten / System-Dateien etwas mehr Aufwand erfordern ...
Grüße
bastla
Damit die Liste komplett (es sollen ja auch Unterordner kopiert werden), aber nicht zu umfangreich wird, vielleicht besser
for /f "delims=" %%i in ('dir /s/b/a-d "%Quelle1%\*.*_*"') do >>nocopy2.txt echo %%~xi
del /s /q "%Ziel1%\*.*_*"
Grüße
bastla
Hi @bastla und @Endoro,
das Problem mit eurem Filter
Beispiel:
man müsste die Liste für die Schleife mit Findstr ausfiltern:
ungetestet etwa so:
Grüße Uwe
das Problem mit eurem Filter
*.*_*
ist, das wenn im Dateinamen Punkte und Unterstriche vorkommen diese Dateien auch nicht mitkopiert werden.Beispiel:
Quartal.Q3_10.xls
man müsste die Liste für die Schleife mit Findstr ausfiltern:
ungetestet etwa so:
'dir /s/b/a-d "%Quelle1%\*.*" ^| Findstr /r /v ".*\.[^^\._]*$"'
Grüße Uwe
Hallo,
lg.
PS: @bastla danke schön €.
(FOR /f "delims=" %%a IN ('dir /b /s "%Quelle1%\*.*_*"') DO FOR /f "delims=_" %%b IN ("%%~xa") DO IF "%%~xa" neq "%%~xb" ECHO %%~xa)>nocopy2.txt
xcopy "%Quelle1%\*" "%Ziel1%" /syidr /exclude:nocopy.txt+nocopy2.txt
PS: @bastla danke schön €.