| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO |
| |
 | Wichtige Änderung bei Lizenzverlängerungen von PTC, eine Pressemitteilung
|
Autor
|
Thema: Dateien älter als 2Tage löschen (1902 mal gelesen)
|
maren124 Mitglied Techn.Zeichner

 Beiträge: 30 Registriert: 02.12.2009
|
erstellt am: 13. Jan. 2011 09:18 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich bin gerade dabei ein Makro zu erstellen, bei welchem beim Speichern automatisch der alte Stand in ein temporäres Verzeichnis gespeichert wird. Damit das temporäre Verzeichnis nicht überläuft, möchte ich in die customize-Datei einen Satz schreiben, dass bei Starten in diesem Verzeichnis alle Dateien, die älter als zwei Tage sind beim me10-Starten automatisch gelöscht werden. Meine Frage: Das Makro habe ich erfolgreich erstellt. Aber wie könnte der Satz zum Löschen der alten Dateien in der temporären Datei aussehen? Verwendet wird die klassische Oberfläche, Version 17.0 Vielen Dank im Vorraus für eure Antworten. Maren 124
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gerhard Deeg Ehrenmitglied V.I.P. h.c. i.R. Konstrukteur aus Leidenschaft

 Beiträge: 2643 Registriert: 17.12.2000 CREO - OSD - OSM HP XW4400 - XW4600 Dell Inspiron 17E NVIDIA QUADRO FX1500 NVIDIA Quadro FX1800 HP Mini 210 2002sg WIN 7 Ultimate 32/64
|
erstellt am: 13. Jan. 2011 10:52 <-- editieren / zitieren --> Unities abgeben:          Nur für maren124
Hallo Maren, wenn ich Dich richtig verstanden habe, dann konstruierst Du den ganzen Tag und läßt Dir immer wieder automatisch eine Sicherungsdatei erstellen. Sagen wir mal , so alle halbe Stunde wenn Du auf den Button erstellen drückst. Diese Sicherungsdatei soll sich dann selbst immer wieder überschreiben und nur den letzten Stand aufheben. Ist das richtig? Ich habe mir mal ein Macro geschrieben was ich Dir angehangen habe. Hat funktioniert. Wenn Du Lust hast, kannst Du das mal ausprobieren. Gruss Gerhard ------------------ Jeder erfüllte Wunsch ist ein Traum weniger Träume sind die Sonnenstunden der Hoffnung Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
maren124 Mitglied Techn.Zeichner

 Beiträge: 30 Registriert: 02.12.2009
|
erstellt am: 13. Jan. 2011 11:14 <-- editieren / zitieren --> Unities abgeben:         
Hallo Gerhard, vielen Dank für deine schnelle Antwort. Ein Ausschnitt aus dem Makro, das ich geschrieben habe: (Speichername ist der Name der zu speichernden Datei und wird automatisch erstellt.) COPY_FILE Speichername ('H:/Zwischenspeicherung/'+Speichername+DATE) STORE ALL DEL_OLD Speichername das heißt: sobald ich durch Drücken der Funktionstaste F10 den Speichervorgang aktiviere, wird von dem aktuellen Teil eine Sicherungskopie in (H:/Zwischenspeicherung) mit dem Name vom Inhalt der Variablen Speichername erstellt. Dann wird mit STORE die aktuelle Zeichnung mit dem Inhalt der Varaiablen Speichername abgespeichert. Dies hat den Vorteil, dass ich aus dem Dateinamen erkennen kann, um welche Zeichnung es sich handelt. Damit ich verschiedene Varianten unterscheiden kann, hänge ich das DATE hintendran. Dies funtioniert einwandfrei. Jetzt möchte ich noch aus dem Verzeichnis (H:Zwischenspeicherung) alle Dateien löschen, die z.B: älter als 2 Tage sind. Ich möchte dies automatisch machen, da sich manche Benutzer dagegen streuben, dies ab und zu über den Explorer zu tun. Und genau dafür suche ich die richtige Syntax. PURGE_FILE aus Verzeichnis (H:Zwischenspeicherung) alle Dateien älter als 2 Tage. Ich hoffe dies war einigermaßen verständlich. Vielen Dank für eure Geduld. Gruß Maren
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
der_Wolfgang Moderator Tastenhauer
     
 Beiträge: 2296 Registriert: 3.20. ● PE60+80@home ● W10 Pro Build10.0.19045.5737 ● Drafting V17~V20.7@job ● Modeling V17~V20.7@job ● Windchill 12.1.2.6@job ● UWGM Client 13.0.0.1@job ● Taschenrechner ● Stift+Zettel V8.42
|
erstellt am: 13. Jan. 2011 13:45 <-- editieren / zitieren --> Unities abgeben:          Nur für maren124
Zitat: Original erstellt von maren124: COPY_FILE Speichername ('H:/Zwischenspeicherung/'+Speichername+DATE)
Hallo Maren, bei nochmaligen Blick auf die Drafting Funktion DATE, schaudert es mich. DATE liefert einen String zurück, der jetzt im Moment so: "13-Jan-2011 13:51:58" aussieht. Leerzeichen im Dateiname sind erlaubt. So weit ok. Aber die (zusaetzlichen) Doppelpunkte im Dateiname auf einem WindowsSystem, das ja mit Laufwerksbuchstaben 'hantiert' .... brrrrr.. das DAS überhaupt funtioniert? "H:/Zwischenspeicherung/UmlenkhebelCoCreate13-Jan-2011 13:21:58" Ich hoffe du hast schon mal probiert eine solche Datei zurückzubenenenen. In der Drafting-Makro-Programmiersprache ist der Support für bereits existierende Dateien ziemlich rudimentär/fast nicht vorhanden IMHO. Alleine die Existenz einer Datei zu prüfen ist mehr als umstaendlich. *1)
Was Du ja machen muesstest... * Liste aller Dateien in H:/Zwischenspeicherung besorgen * Schleife über diese Liste * besorge Datei-Datum/Uhrzeit, vergleiche auf 'älter als' und ggf löschen. Bei aller Erfahrung, die ich habe, DAS würde ich nicht mit ME10 Makros machen wollen (bzw. halte das für ziemlich unmöglich) Ich würde auf (erweiterte) Betriebsystem Mittel zurückgreifen * Cygwin * Core Utils * Windows Script Host
Mit cygwin, geht's in nem Einzeiler: Code: find H:/Zwischenspeicherung -mtime +2 -type f -exec rm {} +
Sowas koenntest du wiederum aus deinem Macro heraus aufrufen, bzw. eine "geplante Aufgabe / scheduled Task" anlegen.Der Bringer ist hier das Shell commando 'find' *2), welches nach Dateien (-type f)sucht, die älter als 2 Tage sind (+2); mtime steht fuer modified time. upsss... ja mit 'CoCreate Programmierung' hat das nun nicht mehr viel zu tun ;)
================================================================
*1) In der Regel macht man das mit einen Try-Error: man versucht die Datei zu öffnen
Code: OPEN_INFILE 42 "H:/Zwischenspeicherung/UmlenkhebelCoCreate.mi"
und checked ob es einen Fehler gab. ==>> das ist schon ziemlich haesslich ; andere Programmiersprachen haben da eine einfache Funktion (file-exists "name") -> t/nil*2) Bitte dieses find nicht mit dem bei Windows enthaltenem find verwechseln, welches IN Dateien sucht. [Diese Nachricht wurde von der_Wolfgang am 13. Jan. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
der_Wolfgang Moderator Tastenhauer
     
 Beiträge: 2296 Registriert: 3.20. ● PE60+80@home ● W10 Pro Build10.0.19045.5737 ● Drafting V17~V20.7@job ● Modeling V17~V20.7@job ● Windchill 12.1.2.6@job ● UWGM Client 13.0.0.1@job ● Taschenrechner ● Stift+Zettel V8.42
|
erstellt am: 13. Jan. 2011 14:05 <-- editieren / zitieren --> Unities abgeben:          Nur für maren124
|
maren124 Mitglied Techn.Zeichner

 Beiträge: 30 Registriert: 02.12.2009
|
erstellt am: 13. Jan. 2011 14:20 <-- editieren / zitieren --> Unities abgeben:         
Hallo Wolfgang Herzlichen Dank für die Antwort. Date von mir natürlich etwas schludrig ausgedrückt. Ich habe mir mit SUBSTR (Datum) eine Variable gebastelt welche z.B. so aussieht: Jahr+Monat+Tag+Stunde+Minute+Sekunde also: 20110113141652 und dieses an den Dateinamen angehängt. Gruß Maren Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSausGE Mitglied Programmierer
 
 Beiträge: 127 Registriert: 29.01.2004
|
erstellt am: 13. Jan. 2011 16:25 <-- editieren / zitieren --> Unities abgeben:          Nur für maren124
|
Gerhard Deeg Ehrenmitglied V.I.P. h.c. i.R. Konstrukteur aus Leidenschaft

 Beiträge: 2643 Registriert: 17.12.2000 CREO - OSD - OSM HP XW4400 - XW4600 Dell Inspiron 17E NVIDIA QUADRO FX1500 NVIDIA Quadro FX1800 HP Mini 210 2002sg WIN 7 Ultimate 32/64
|
erstellt am: 13. Jan. 2011 19:09 <-- editieren / zitieren --> Unities abgeben:          Nur für maren124
Hallo Wolfgang, Zitat: Original erstellt von der_Wolfgang: Das ist einigermassen das, was Modeling mit der "AutoSave" Funktionalität drin hat. Nur Modeling kann halt automagisch nach Zeitinterval speichern.
auch wird bei dem Macro automatisch die Zeit abgefragt und auch die Sicherungsnummer. Nur hat das den Nachteil, dass erst einmal auf ERSTELL 1 gedrückt werden muss um den Vorgang einzuläuten. Die Kollegen, die mein Macro auf dem Rechner haben freuen sich darüber, dass bei einem eventuellen Absturz oder man hat vergessen zu speichern die letzte halbe Stunde nur verloren war. Gruss Gerhard ------------------ Jeder erfüllte Wunsch ist ein Traum weniger Träume sind die Sonnenstunden der Hoffnung Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
der_Wolfgang Moderator Tastenhauer
     
 Beiträge: 2296 Registriert: 3.20. ● PE60+80@home ● W10 Pro Build10.0.19045.5737 ● Drafting V17~V20.7@job ● Modeling V17~V20.7@job ● Windchill 12.1.2.6@job ● UWGM Client 13.0.0.1@job ● Taschenrechner ● Stift+Zettel V8.42
|
erstellt am: 13. Jan. 2011 23:29 <-- editieren / zitieren --> Unities abgeben:          Nur für maren124
|
der_Wolfgang Moderator Tastenhauer
     
 Beiträge: 2296 Registriert: 3.20. ● PE60+80@home ● W10 Pro Build10.0.19045.5737 ● Drafting V17~V20.7@job ● Modeling V17~V20.7@job ● Windchill 12.1.2.6@job ● UWGM Client 13.0.0.1@job ● Taschenrechner ● Stift+Zettel V8.42
|
erstellt am: 13. Jan. 2011 23:41 <-- editieren / zitieren --> Unities abgeben:          Nur für maren124
Zitat: Original erstellt von RSausGE: ich würde es mal mit CATALOG und den Befehlen aus der Kategorie "Betriebssystem und Dateien" versuchen.
Du füllst mir da 'grad ne Lücke! Code: CATALOG "H:/Zwischenspeicherung" SORT 'MODIFY_DATE' SELECT 'FILE_NAME' '*.mi' SELECT 'MODIFY_DATE' < '11-Jan-11' del_old 'H:/Zwischenspeicherung/aelter_2Tage.txt'
Was kommt dabei raus, Maren? Testweise noch ein DETAIL_INFO einsetzenDa braeuchten wir nur noch ein (DATE(=heute) minus 2 Tage) basteln..... ------------- sehr schönes Beispiel, wo man beim Datum mal wieder nicht weiss wo vorn' und hinten ist: ist 11 nun das Jahr oder der Tag ------------------ ● Seamonkey Firefox Thunderbird ● OSD Hilfeseite (de) / help page (en) ● NotePad++ ● Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Patrick Weber Mitglied Konstruktionstechniker, Admin
  
 Beiträge: 659 Registriert: 20.11.2006
|
erstellt am: 14. Jan. 2011 19:10 <-- editieren / zitieren --> Unities abgeben:          Nur für maren124
Zitat: Original erstellt von der_Wolfgang:
Da braeuchten wir nur noch ein (DATE(=heute) minus 2 Tage) basteln.....
Na dann viel Spass dabei. *würg* Aber vielleicht könnte man den Datumsstring in Unixzeit umrechnen. Dann sollten die 2 Tage Differenz zu berechnen, kein Problem mehr darstellen.
------------------ Grüße aus Sachsen pw Karl Marx ist tot, Einstein ist tot, und mir ist auch schon ganz schlecht! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
friedhelm at work Mitglied Techniker Aluminium Profile
  
 Beiträge: 913 Registriert: 01.04.2003 Creo Elements Direct /Drafting 17+20.x ui classic-Tablett + Ribbon, Modeling 17-20.0,.2,.4,.5 Lizenz auf USB-Netzwerkadapter PE-Express 8 Win 10 Enterprise 64 @work Win 10 Pro 64 @home Notepad++,IrfanView,eDrawings, ....
|
erstellt am: 14. Jan. 2011 21:55 <-- editieren / zitieren --> Unities abgeben:          Nur für maren124
Zitat: Original erstellt von der_Wolfgang: Da braeuchten wir nur noch ein (DATE(=heute) minus 2 Tage) basteln.....
Ja und wenn das funktioniert sind Montags alle Dateien weg Wie wäre es denn damit. Hänge an Jahr+Monat+Tag+Stunde+Minute+Sekunde, also: 20110113141652 den Wochentag dran zB. Montag '#1', Dienstag '#2' usw. 'dateiname20110113141652#1' oder 'dateiname20110113141652#1.mi' Dann löschts du Montags '*#3*' Dienstags '#4*' usw. ------------------ Gruss Friedhelm Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Patrick Weber Mitglied Konstruktionstechniker, Admin
  
 Beiträge: 659 Registriert: 20.11.2006
|
erstellt am: 14. Jan. 2011 23:32 <-- editieren / zitieren --> Unities abgeben:          Nur für maren124
Zitat: Original erstellt von Patrick Weber: Aber vielleicht könnte man den Datumsstring in Unixzeit umrechnen.
Scheint sogar zu funktionieren. War der Freitagabend wenigstens nicht so langweilig... ------------------ Grüße aus Sachsen pw Karl Marx ist tot, Einstein ist tot, und mir ist auch schon ganz schlecht! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gerhard Deeg Ehrenmitglied V.I.P. h.c. i.R. Konstrukteur aus Leidenschaft

 Beiträge: 2643 Registriert: 17.12.2000 CREO - OSD - OSM HP XW4400 - XW4600 Dell Inspiron 17E NVIDIA QUADRO FX1500 NVIDIA Quadro FX1800 HP Mini 210 2002sg WIN 7 Ultimate 32/64
|
erstellt am: 15. Jan. 2011 12:10 <-- editieren / zitieren --> Unities abgeben:          Nur für maren124
Hallo Patrik. auf dieser Art hatte ich mal ein Macro geschrieben, um meine Software (Formenbau 9000) zu schützen. Ich habe diesen Schalter eingebaut, um eine testversion auf einer Unixmaschine rauszugeben und nach 3 Monaten wenn die Zeit abgelaufen ist, hat sich die Software automatisch gelöscht. Hat der Kunde bezahlt, hat er ein Passwort bekommen, was eine uneingeschränkte Nutzung erlaubte. Hat auch so funktioniert durch das zusammensetzen der einzelnen Strings. Gruss Gerhard ------------------ Jeder erfüllte Wunsch ist ein Traum weniger Träume sind die Sonnenstunden der Hoffnung Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |