Ga naar inhoud
  • 0

Hoe automatisch back up met datum als naam maken?


Daan.

Vraag

Is er iemand in de zaal die weet hoe ik een scriptje kan maken

zodat er een back-up gemaakt word van het hele filemaker bestand.

De naam van dat bestand moet dan zijn: datum+tijd.fp7

 

Ik ben zover dat hij bij het opstarten een backup maakt met het commando:

Save a Copy as[ "bestandsnaam.fp7" ;copy] in het opstart script.

Het probleem is alleen dat dit steeds de oude backup overschrijft.

Ik zou dus graag de datum en tijd aan het bestandsnaam toevoegen.

Gewoon // in bestandsnaam zetten werkt niet.

Het moet helaas ook op een windows werken, anders had ik er applescript voor kunnen gebruiken.

 

Iemand een idee, of het al voor elkaar gekregen.

Link naar reactie

5 antwoorden op deze vraag

Aanbevolen berichten

  • 0

Ik doe dit met behulp van de Troi File plug-in. In FM8 is deze niet nodig. Als je de Troi File plug-in hebt, of deze wilt kopen, maak dan twee globale tekstvelden: 'gExportBestand' en 'gFileResult'.

 

Zet dan de volgende scriptstappen in je script:

 

Set Field [ DatabaseName::gExportBestand; Substitute ( Get ( CurrentTimeStamp ) ; [ ":" ; "_" ] ; [" " ; "_" ] ; [ "-" ; "_" ] ) ] (of hoe je de datum+tijd wilt weergeven)

Export Records [ File Name: "file:../Documents/qrstuvwxyz.fp7"; Character Set: "Unicode (UTF-16)"; Field Order: Whatever ] [ No dialog ]

Set Field [ DatabaseName::gFileResult; TrFile_CopyFile ( "" ; "qrstuvwxyz.fp7" ; DatabaseName::gExportBestand ) ]

Set Field [ DatabaseName::gFileResult; TrFile_DeleteFile ( "" ; "qrstuvwxyz.fp7" ) ]

 

Lees de manual van Troi File plug-in en experimenteer met de syntax van de FileSpecs (deze zijn verschillend voor Mac en Windows) voor een correct resultaat.

De cursief weergegeven tekst in de scriptstappen moet je uiteraard vervangen door je eigen tekst.

 

Succes

Link naar reactie
  • 0

Ik heb dat in een script zo opgelost:

 

Eerst een kopie opslaan. Omdat die naam niet 'interactief' te bepalen valt, krijgt het bestand altijd dezelfde naam.

 

Save a Copy as ["BestandCopy.fp7";copy]

 

Dan hernoemen we die kopie met behulp van een DOS commando (dat ik met Send Event direkt aan het OS stuur), waarbij, gebruik makend van het feit we in Send Event wel 'interactief' een veranderlijke naam kunnen meegeven, calc_backup_date een berekend veld is dat de huidige datum en tijd in het volgende formaat uitspuugt: 6_3_2006_16_10_23, op deze manier:

 

Day (Get (CurrentDate)) & "_" &
Month (Get (CurrentDate)) & "_" &
Year (Get (CurrentDate) & "_" &
Hour (Get (CurrentTime) & "_" &
Minute (Get (CurrentTime) & "_" &
Seconds (Get (CurrentTime)

 

 

Het scriptbevel:

 

Send Event ["aevt"; "odoc"; "CMD /c ren BestandCopy.fp7 Bestand_Backup_" & calc_backupdate & ".fp7"]

 

Zodat het hele bestand nu heet:

 

Bestand_Backup_6_3_2006_13_10_23.fp7

 

 

Dat is het eigenlijk, maar omdat ik het geheel een beetje overzichtelijk wilde houden en bovendien van DOS-commando's houd :D heb ik nog vijf subdirectories gemaakt die 'Monday', 'Tuesday', 'Wednesday', 'Thursday' en, je raadde het, 'Friday' heten, om daar de gebackupte bestanden in te bewaren. Die krijg ik daarin door ze via Send Event te verplaatsen.

 

Send Event ["aevt"; "odoc"; "CMD /c move BestandBackup*.* "& DayName (Get (CurrentDate))]

 

Beetje voorzichtig daarmee: ongelukkigen die in het weekend moeten werken, moeten nog mappen voor Zaterdag en Zondag toevoegen en zij die op een niet-Engelstalig OS werken moeten de mappen namen in de taal van dat OS geven.

Link naar reactie

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...