| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO |
Autor
|
Thema: sd-sys-exec unter Windows verwenden ?? (1764 mal gelesen)
|
M.Smarslik Mitglied
Beiträge: 57 Registriert: 22.09.2004 OSD 11.60C HP-UX
|
erstellt am: 11. Okt. 2005 15:10 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich verwende unter UNIX im SolidDesigner den Lisp Befehl (sd-sys-exec "ll /zeichnung/*.pkg > /tmp/liste_pkg") um alle .pkg Dateien im Verzeichnis zeichnung zu finden und das Ergebnis in die Datei /tmp/liste_pkg umzuleiten. Wie kann ich das gleiche unter Windows erreichen? Den File Browser will ich nicht verwenden, da der Anwender nicht in den Verzeichnissen rum suchen soll. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Walter Geppert Moderator Frank und Frei
Beiträge: 2143 Registriert: 12.12.2000 Konstruktion von Sondermaschinen, Montageautomaten, Meß- und Prüfeinrichtungen, Vorrichtungen und Produktentwicklung mit Creo Elements/Direct Modeling 20.4, AdvancedDesign, Surfacing, Simulate, SolidPower, ModelManager auf HP ZBook 17 G4, Windows 10 Pro 64
|
erstellt am: 11. Okt. 2005 15:15 <-- editieren / zitieren --> Unities abgeben: Nur für M.Smarslik
Am Besten gleich universell: Code:
(if (eql (sd-inq-platform) :hp-ux) (sd-sys-exec (format nil "ll ~a > ~a" (sd-convert-filename-to-platform dirname) (sd-convert-filename-to-platform listenfile))) (sd-sys-exec (format nil "dir ~a > ~a" (sd-convert-filename-to-platform dirname) (sd-convert-filename-to-platform listenfile))) )
------------------ meine LISP-Makros sind auf Heikos Hilfeseite Grüße aus Wien Walter DC4 Technisches Büro GmbH Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
clausb Ehrenmitglied V.I.P. h.c.
Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 11. Okt. 2005 15:33 <-- editieren / zitieren --> Unities abgeben: Nur für M.Smarslik
Mit Verlaub, mein lieber Walter, "universell" ist diese Loesung nicht. Dazu benutzt man besser plattformunabhaengige Common-LISP-Funktionalitaet, hier also "directory" - siehe http://www.lisp.org/HyperSpec/Body/fun_directory.html . Anwendungsbeispiel: Code:
(with-open-file (s "dir.log" :direction : output) (dolist (f (directory "*.pkg")) (format s "~A~%" (file-namestring f))))
Claus PS: Schon bei der HPUX-Version ist's uebrigens eher Glueckssache, ob sie funktioniert, denn "ll" ist ja kein eingebauter Befehl, sondern ein Shell-Alias. Ob der Befehl also erkannt wird, haengt davon ab, ob der Anwender mit der richtigen Shell eingeloggt ist und/oder das richtige .profile oder .kshrc liest. PS2: 80%-Faustregel: Wer sd-sys-exec verwendet, macht einen Fehler. PS3: Das Leerzeichen oben zwischen : und "output" bitte beim Uebertragen entfernen, das musste ich nur wegen der etwas beschraenkten UBB-Interpretation einfuegen.
[Diese Nachricht wurde von clausb am 11. Okt. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
M.Smarslik Mitglied
Beiträge: 57 Registriert: 22.09.2004 OSD 11.60C HP-UX
|
erstellt am: 11. Okt. 2005 16:50 <-- editieren / zitieren --> Unities abgeben:
Hallo Claus, der Befehl "directory" ist ja schön, aber ich brauche für mein Macro das Erstelldatum und die Größe der Paket-Datei und das habe ich bisher nur mit "ll" erreicht. Das funktioniert auch, aber unter Windows habe ich noch meine Schwierigkeiten, zumal ich bei einer Pfad Eingabe in Windows, bisher nur mit folgendem Syntax erfolgreich war "c:/zeichnung/test.pkg" obwohl es ja eigentlich "c:\zeichnung\test.pkg" heißen sollte. Vielleicht weiss ja jemand Rat. Gruß Martin
[Diese Nachricht wurde von M.Smarslik am 12. Okt. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
clausb Ehrenmitglied V.I.P. h.c.
Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 11. Okt. 2005 17:17 <-- editieren / zitieren --> Unities abgeben: Nur für M.Smarslik
|
clausb Ehrenmitglied V.I.P. h.c.
Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 11. Okt. 2005 18:09 <-- editieren / zitieren --> Unities abgeben: Nur für M.Smarslik
|
M.Smarslik Mitglied
Beiträge: 57 Registriert: 22.09.2004 OSD 11.60C HP-UX
|
erstellt am: 12. Okt. 2005 09:43 <-- editieren / zitieren --> Unities abgeben:
Hallo Claus, vielen Dank für das Macro ! Das ist sicher die universellste Lösung. Allerdings stimmt bei mir das Datum nicht mit dem überein, was im Filesystem steht. Beim "Tag" bekomme ich nur Werte zwischen 0 und 4 . Alle anderen Einträge (auch die Zeit) sind richtig. Gruß Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
clausb Ehrenmitglied V.I.P. h.c.
Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 12. Okt. 2005 09:56 <-- editieren / zitieren --> Unities abgeben: Nur für M.Smarslik
In der Tat, beim Tag war ein Fehler drin. In der format-Anweisung in file-mod-time muss es "date" heissen und nicht "day". Danke fuer den Hinweis. Den Code in den FAQ-Seiten habe ich natuerlich auch gleich korrigiert (und bei dieser Gelegenheit leicht gekuerzt). Claus ------------------ OneSpace Designer Modeling FAQ: http://www.clausbrod.de/Osdm/ [Diese Nachricht wurde von clausb am 12. Okt. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
M.Smarslik Mitglied
Beiträge: 57 Registriert: 22.09.2004 OSD 11.60C HP-UX
|
erstellt am: 12. Okt. 2005 15:26 <-- editieren / zitieren --> Unities abgeben:
|
der_Wolfgang Ehrenmitglied V.I.P. h.c. Tastenhauer
Beiträge: 2017 Registriert: 3.20. ● PE6+8@home ● W10 Pro Build19044.2364 ● Drafting V20.1+4 ● Modeling V20.1+4
|
erstellt am: 12. Okt. 2005 20:54 <-- editieren / zitieren --> Unities abgeben: Nur für M.Smarslik
und anstatt einem selbstgestricktem (defun file-len....) koennte man auch auf's gute alte Integration KIT zurueckgreifen und ein Code: (sd-inq-file-size filename)
verwenden.Ein (sd-inq-file-mod-time filename &optional date-time-format) gibt es meines wissens leider nicht.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
clausb Ehrenmitglied V.I.P. h.c.
Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 13. Okt. 2005 08:32 <-- editieren / zitieren --> Unities abgeben: Nur für M.Smarslik
Zitat: und anstatt einem selbstgestricktem (defun file-len....) koennte man auch auf's gute alte Integration KIT zurueckgreifen und ein Code: (sd-inq-file-size filename)
verwenden.
Danke fuer den Hinweis! sd-inq-file-size erwartet allerdings den Dateinamen als String, nicht als "pathname", wie ihn "directory" liefert. Daher muss man erst konvertieren, und so ist der Code mit sd-inq-file-size weder kuerzer noch einfacher. Ich habe trotzdem darauf umgestellt, weil ich Grund zur Annahme habe, dass diese Art der Groessenermittlung einen Hauch schneller ist. (Nicht, dass ich das ausprobiert haette .-) Danke! Claus ------------------ OneSpace Designer Modeling FAQ: http://www.clausbrod.de/Osdm/ [Diese Nachricht wurde von clausb am 13. Okt. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |