ingi70
Goto Top

Move if exist Datum anhängen

Hallo,

verzweifle mal wieder an einem Batch und google wird auch nichts aussagekräftiges raus.

Ich möchte gerne Dateien von a nach b verschieben. Sollte der Dateiname in b bereits vorhanden sein, soll Datei in a mit Zeitstempel verschoben werden.

Beispiel

mappe1.xls gibt es bereits in b, also soll mappe1.xls als mappe1201305031134.xls verschoben werden...

Irgendwer hat das Problem doch bestimmt schonmal gelöst und hat ein Codeschnipsel für mich ?

Danke im Voraus
Lg Ingo

Content-ID: 205990

Url: https://administrator.de/contentid/205990

Ausgedruckt am: 23.11.2024 um 01:11 Uhr

Hitman4021
Hitman4021 03.05.2013 um 11:40:57 Uhr
Goto Top
Hallo,

sowas in der Art
if exist {$NEW_DIR%\%FILENAME%} (
    mv %OLD_DIR%\%FILENAME% $NEW_DIR%\%FILENAME%-%date%
) else (
    mv %OLD_DIR%\%FILENAME% $NEW_DIR%\%FILENAME%
)
bastla
bastla 03.05.2013 um 11:47:21 Uhr
Goto Top
Hallo inigi70!

Grundsätzlich etwa so:
@echo off & setlocal
set "Von=D:\a"  
set "Nach=D:\b"  

set "Timestamp=%date:~-4%%date:~-7,2%%date:~-10,2%%time:~,2%%time:~3,2%"  
for /f "delims=" %%i in ('dir /b/a-d "%Von%"') do (  
    if not exist "%Nach%\%%i" (  
        move "%Von%\%%i" "%Nach%\"  
    ) else (
        move "%Von%\%%i" "%Nach%\%%~ni%Timestamp%%%~xi"  
    )
)
Sofern nicht alle Dateien verschoben werden sollen, in Zeile 5 eine passende Suchmaske verwenden, also etwa:
for /f "delims=" %%i in ('dir /b/a-d "%Von%\*.xls"') do (
Grüße
bastla
ingi70
ingi70 03.05.2013 um 11:59:09 Uhr
Goto Top
Boa seit ihr schnell..
vielen Dank, es klappt