Hirdetés

Keresés

Új hozzászólás Aktív témák

  • cigam
    titán

    Sziasztok! Segítségetekre lenne szükségem, kezdek kissé megbolondulni :)

    Szeretnék csinálni egy .bat filet, ami egy adott könyvtárból átmásol egy filet egy másik könyvtárba, de mielőtt ezt megtenné, a célkönyvtárban szereplő ugyan olyan nevű filet elnevezze mondjuk a mai dátumra, és csak utána másolja be a filet, így kikerülve azt, hogy felülírkálják egymást. Az eredmény az lesz, hogy egymás mellé szépen más-más nevekkel pakolgatja le azt az 1 filet amit többször szeretnék backupolni.

    Találtam egy kódot a neten ami valahogy így néz ki:

    @echo off
    set source="C:\innen\ezt.7z"
    set target="C:\innen\ide\ezt.7z"
    set today=%date:~10,4%%date:~4,2%%date:~7,2%
    for /f "tokens=* delims=" %%i in ('echo all ^| xcopy /l /d %source% %target% ^| find /v /i "overwrite"') do (
    if exist %target%\%%~nxi copy %target%\%%~nxi %target%\%%~ni-%today%%%~xi
    )
    echo all | xcopy /d %source% %target% > nul

    a probléma a következő: a másolást megcsinálja, de csak egyszer, és nem nem nevezi át a célkönyvátrban szereplő filet.

    Valaki tudna segíteni ebben?

    Nem bonyolítod ezt túl? Miután a másolás kimenetében van "overwrite", mégegyszer lecsekkolod, hogy létezik-e? Miért másolod, mikor átnevezésről volt szó?

    set source="C:\innen\"
    set target="C:\innen\ide\"
    set file="ezt.7z"
    set today=%date:~10,4%%date:~4,2%%date:~7,2%
    if exist %target%\%file% (ren %target%\%file% %target%\%today%-%target%)
    xcopy /l /d %source%\%file% %target%\%file%

    Vagy valami ilyesmi. (OS X alatt nem tudom tesztelni)

Új hozzászólás Aktív témák