Mentés készítése 10 nap után batch fájllal

Mentés készítése 10 nap után batch fájllal
2019-07-08T14:44:38+02:00
2019-07-08T17:58:09+02:00
2022-10-15T21:41:13+02:00
kltcsb
Sziasztok,

batch fájlt szeretnék futtatni minden rendszerindításkor windows tartományban, ahol win7, win 8.1, win10 gépek vannak különböző office-okkal.

Ezeken a helyeken lehetnek a pst fájlok:
%LOCALAPPDATA%\Microsoft\Outlook\
%APPDATA%\Microsoft\Outlook
%USERPROFILE%\Documents\Outlook-fájlok
%USERPROFILE%\Dokumentumok\Outlook-fájlok

Tehát egy batch fájlra lenne szükségem, ami minden rendszerindításkor lefut (mielőtt az outlookot meg tudná nyitni, azaz zárolná a pst-ket) és megvizsgálja,h a szerveren, adott felhasználó outlook mappájában ( \szerver\User\%USERNAME%\outlook) lévő összes pst dátuma ha 10 napnál régebbi, mint a fenti helyeken lévő összes(!) pst (egy felhasználónak több fiókja is van/lehet), akkor másolja és írja felül, különben nem kell csinálni semmit.

Előre is köszönöm szépen!
Mutasd a teljes hozzászólást!

  • Hali!

    Mutasd – forráskóddal –, hogy eddig mivel, hogyan próbálkoztál, meddig jutottál el, mi nem megy, miben/hol akadtál el!

    Mutasd a teljes hozzászólást!
  • Lehet,h rossz logika, de számolnék a mai dátumból egy értéket,majd ezt kellene összehasonlítani  a szerveren lévő mentett fájlok timestamp-jéből kiszedett és hasonlóan számított értékkel (nah ez pl nem megy), és ha a kettő között nagyobb az eltérés 10-nél, akkor mehet a másolás, különben nem kell.

    @echo off ::aktuális dátum meghatározása, szétbontva set CUR_YYYY=%date:~0,4% set CUR_MM=%date:~5,2% set CUR_DD=%date:~8,2% ::év, hó átszámítása napokká, összeadva év, hó, nap értékei SET /A evnap = 365 set /A evnap *= %CUR_YYYY% echo %evnap% set /A honap = 30 set /A honap *= %CUR_MM% echo %honap% set /A aktossznap =%evnap%+%honap%+%CUR_DD% echo %aktossznap% ::Ha nem létezik a mentés helyén még pst, akkor simán mehet a másolás if not exist \szerver\User\%USERNAME%\outlook\*.pst ( copy %LOCALAPPDATA%\Microsoft\Outlook\*.pst \szerver\User\%USERNAME%\ /B /Y copy %APPDATA%\Microsoft\Outlook\*.nk2 \szerver\User\%USERNAME%\ /B /Y copy %USERPROFILE%\Documents\Outlook-fájlok\*.pst \szerver\User\%USERNAME%\ /B /Y copy %USERPROFILE%\Dokumentumok\Outlook-fájlok\*.pst \szerver\User\%USERNAME%\ /B /Y ) if aktossznap -10 > regifajlideje ( copy %LOCALAPPDATA%\Microsoft\Outlook\*.pst \szerver\User\%USERNAME%\ /B /Y copy %APPDATA%\Microsoft\Outlook\*.nk2 \szerver\User\%USERNAME%\ /B /Y copy %USERPROFILE%\Documents\Outlook-fájlok\*.pst \szerver\User\%USERNAME%\ /B /Y copy %USERPROFILE%\Dokumentumok\Outlook-fájlok\*.pst \szerver\User\%USERNAME%\ /B /Y )
    Lehet,h egy for-ral végig kellene lépkedni a mentett könyvtárban, egyesével megnézni a regifajideje-t, összevetni az aktossznap-pal, és ha régebbi a mentett 10 nappal, akkor mehet a másolás.(?)
    Mutasd a teljes hozzászólást!
  • már ezt sem értem:

    SET YEAR=%DATE:~0,4% SET MONTH=%DATE:~5,2% SET DAY=%DATE:~8,2% set evnap=365 set /A evnap*=%YEAR% rem %evnap% set honap=30 set /A honap*=%MONTH% rem %honap% set napnap=10 set /A napnap*=%DAY% rem %napnap%
    Erre az évet, azaz 2019-et ki tudja szorozni 365-tel, a 07 hónapot ki tudja szorozni 30-cal, de a 08 napot nem tudja kiszorozni 10-zel...

    C:\temp>SET YEAR=2019 C:\temp>SET MONTH=07 C:\temp>SET DAY=08 C:\temp>set evnap=365 C:\temp>set /A evnap*=2019 C:\temp>rem 736935 C:\temp>set honap=30 C:\temp>set /A honap*=07 C:\temp>rem 210 C:\temp>set napnap=10 C:\temp>set /A napnap*=08 Érvénytelen szám. A numerikus konstansokat decimálisan (17), hexadecimálisan (0x11), binárisan (0b10001) vagy oktálisan (021) kell megadni. C:\temp>rem 10
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd