Sie sind nicht angemeldet.

1

10.07.2008, 16:37

Batch Datei mit relativen Link

Hi zusammen,

ich bin ein relativer Neuling in Linux/KDE.
Weiß leider auch nicht ob meine Anfrage hier richtig ist.
Also zu meinen Problem.
Ich hab 2 OpenOffice Präsentationen die untereinander verlinkt sind.
Da OpenOffice bei einer Verlinkung nicht gleich im Präsentationsmodus startet habe ich mir eine .desktop-Datei gebastelt.
Diese enthält folgenden Code:

Quellcode

1
openoffice.org2.2 -impress -show '/home/Benutzername/Dokumente/video.odp'

Diese Präsentationen sollen nun auch verteilt werden.
Da aber diese .desktop-Datei keine relativen Links kennt, ist meine Frage ob es möglich ist hier eine Stapelverarbeitung (ähnlich wie unter Windows eine Batch-Datei) schreiben kann, welche relative Links kennt, d.h. ich nur sag

Quellcode

1
openoffice.org2.2 -impress -show 'Video.odp'

und auch dann funktioniert.

MFG
und Danke!!!

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

2

10.07.2008, 18:28

RE: Batch Datei mit relativen Link

hä?
wat is los?

was bedeutet "Diese Präsentationen sollen nun auch verteilt werden."?????
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

3

11.07.2008, 00:21

Für mich hört sich das an, als bekämen jetzt andere Leute die Präsentation, um sie auf ihrem Rechner laufen zu lassen. In diesem Fall würde natürlich der Absolute Pfad nicht mehr stimmen.

Warum kann da kein relativer Pfad rein? (Das ist doch sowiso nur ein Kommandozeilenparameter.)
Was mich viel eher wundert ist das "openoffice.org2.2"... Wie kann man sicher sein, dass jeder der die Präsentation bekommt die Version 2.2 installiert hat? OpenOffice ist groß und Benutzer mit langsamen Internetverbindungen lassen gern mal eine Version aus.

4

11.07.2008, 08:31

Die Präsis werden bei mir in der Firma verteilt, damit ist gegeben das jeder die gleiche Version hat.
Das Problem ist, das die Leute einen anderen Pfad haben bzw. einen anderen Benutzername, wie kann man das umgehen?

5

11.07.2008, 11:52

Du könntest ein Shellscript machen, aber da könnten evtl. die Rechte beim kopieren verloren gehen:

Quellcode

1
2
3
4
#! /bin/sh
ooffice -show test/present.odp
#oder
ooffice -show present.odp

In der ersten Zeile steht der Interpreter nach "#!". Der Interpreter ist das Programm, das den Code des Scripts ausführt.
Wenn das Script nach dem kopieren die nötigen Rechte zum Ausführen hat, dann kann es mit "./dateiname" gestartet werden, wenn es im Arbeisverzeichnis liegt, sonst muss der Pfadname absolut oder relativ davor. Wenn es dazu noch in einem Verzeichnis aus $PATH liegt, dann genügt es i.d.R. einfach den Dateinamen zu benutzen.
Hat es keine Ausführen-Rechte muss man den Interpreter voranstellen, also z.B. "bash dateiname" oder den Code über eine Pipe zur Standardeingabe des Interpreters leiten. Manche Interpreter erwarten auch spezielle Optionen, z.B. "smixer -s dateiname".
Lesen-Rechte sind aber das Minimum, um ein Script auszuführen.

Ich vermute aber, dass das alles nix hilft, weil Du das Arbeitsverzeichnis des Präsentationsprogramms nicht vorhersagen kannst und daher nicht weisst, wie von dort aus die zweite Datei anzusprechen wäre. Auch das Shellscript wird vermutlich daran nix ändern, weil das Arbeitsverzeichnis des Präsentationsprogramms vermutlich auch das der Shell wird.

Du könntest das alles aber auch so konstruieren, dass es nur im Heimatverzeichnis des Benutzers liegen darf (oder in einem festgelegt benannten Unterverzeichnis) und dann die Umgebungsvariable "HOME" (oder das entsprechende Pendandt des Interpreters) benutzen, um die Datei von dort aus anzusprechen.

PS: Schonmal über ein Macro nachgedacht?

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

6

11.07.2008, 13:35

Zitat

Original von muha
Die Präsis werden bei mir in der Firma verteilt, damit ist gegeben das jeder die gleiche Version hat.

ich verstehe nur bahnhof !!! was sind präsis, kannst du das auch mal auf deutsch ausdrücken? wie werden die verteilt???

Zitat

Das Problem ist, das die Leute einen anderen Pfad haben bzw. einen anderen Benutzername, wie kann man das umgehen?

was hat der andere benutzername damit zu tun? welcher pfad ist anders? der des dokuments, der pfad in dem openoffice liegt oder was. ich kann mit deinen texten nichts anfangen, es ist mir nicht möglich, diese zu entschlüssseln und zum raten habe ich keine lust.
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

7

11.07.2008, 15:07

Präsis=Präsentationen und diese werden dann in gezippter Form verteilt.

Der Benutzername ist die Anmeldung in unserem System, jeder Mitarbeiter hat ein Kürzel (z.B. a111MA. Mit diesem Kürzel meldet sich der USer an und dieses Kürzel ist immer im Ablageverzeichnis von Linux, sprich im home/a111MA/präsentation.
Dadurch kann ich keine Desktop/Batch datei erstellen, welche für alle User gültig ist, da der komplette Ordner der Präsentation in einem ganz anderen Verzeichniss liegen kann, z.B. home/a111MA/Neu/Präsentation.

So um aber die Präsentationen im Präsentationsmodus zu starten benötige ich diese Dekstop/Batch Datei, welche die relativen Verweise kennt.

Ich hoffe es ist nun ein wenig klarer.

Du könntest ein Shellscript machen, aber da könnten evtl. die Rechte beim kopieren verloren gehen:
Was verstehst du unter Rechte?Kann der Admin dies einrichten?

Wie würdest du das Makro den programmieren?

MFG

8

11.07.2008, 16:10

Zitat

Original von muha
Was verstehst du unter Rechte?Kann der Admin dies einrichten?

Ja, mit chown und chmod kann das Script wieder lesbar/ausführbar gemacht werden.
Das Problem ist vermutlich, dass, selbst wenn die Rechte mit im Archiv gespeichert werden, die UIDs auf dem Zielsystem nicht unbedingt mit denen auf dem Ausgangssystem übereinstimmen. Nach dem entpacken gehören die Dateien also möglicherweise anderen oder nicht vorhandenen Benutzern. So viel ich weiß, werden sie aber beim Entpacken aus Sicherheitsgründen sowiso oft auf Standards zurückgesetzt, wobei ebenfalls die Ausführbarkeit leiden könnte.

Zitat

Original von muha
Wie würdest du das Makro den programmieren?

Konkretes kann ich Dir nicht sagen, denn als ich das letzte Mal die Makrosprache(n) von OpenOffice angesehen habe, habe ich mich furchtbar erschreckt und traue mich nicht mehr darüber nachzudenken. ;)
Das Makro müsste aber quasi beim Klick auf die Verlinkung aktiviert werden, den absoluten Verzeichnispfad der aktuellen "Präsi" ermitteln, daraus die Kommandozeile für die Zweite ermitteln und diese dann ausführen.
Ob und wie das geht kann ich aber nicht sagen, weil ich quasi traumatisiert bin.

PS: Dabei wollte ich bloß eine Tabelle, deren Zeilen einander gegenseitig Referenzieren, rekursiv in eine Baumstruktur umwandeln. Ich hab's aufgegeben und vermute, das müsste sogar mit Brainfuck einfacher zu programmieren sein. ;)
(Ich hab' es dann in eine CSV exportiert und mit PHP gelöst.)

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

9

12.07.2008, 08:18

also ich versuche es noch einmal:
1. an die mitarbeiter wird eine präsentation in gezippter form verteilt (zb email), diese entzippen die mitarbeiter in irgendeinem unterverzeichnis ihres homeverzeichnisses
2. auf dem desktop der mitarbeiterrechner soll sich ein link (icon) befinden, mit dem nach dem anklicken immer die aktuelle, entzippte version im openoffice geöffnet wird (oder soll sie auch automatisch entzippt werden?)

ist das so gemeint?
welches betriebssystem und welche oberfläche benutzen die mitarbeiter?
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

10

14.07.2008, 08:47

Also die Mitarbeiter erhalten eine Zip-Datei die folgendes enthält:
Ordner mit der Hauptpräsentation
Unterordner mit einer Unterpräsentation welche aber auch die Desktop-Datei enthält.

Diesen Ordner können die Mitarbeiter in ihrem Systen ablegen wie sie wollen.
Die Hauptpräsentation enthält Links die auf die Desktop-DAtei verweist im Unterordner.
Diese Dekstop-DAtei verweist wieder auf die Unterpräsentation, um diese dann im Präsentationsmodus zu öffnen.

Das Problem ist das die Desktop-Datei von einem Mitarbeiter (in diesem Fall von mir) erstellt wird.
Da die Desktop-Datei zum einen den Befehl wie oben beschrieben enthält und zum anderen den Pfad zur Unterpräsentation. Dieser Pfad kann aber immer anderes ausfallen, den der Mitarbeiter muss die entzippten Ordner nicht unter home/a122MA/Präsentation ablegen, sondern kann auch alles unter home/a122MA/Ablage ablegen.

Und deswegen muss die Desktop-Datei relative Links kennen.

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

11

14.07.2008, 09:01

kannst du mal solch eine zip-datei posten? die präsentationen können ja einfach etwas fake-inhalt enthalten sowie den link in der hauptpräsentation und die desktop-datei.
von welchem windowmanager reden wir hier ????
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

12

14.07.2008, 11:11

Hier mal die ZIp-DAtei als Beispiel

Was verstehst du utner windowmanager?
»muha« hat folgende Datei angehängt:
  • Beispiel.zip (26,88 kB - 16 mal heruntergeladen - zuletzt: 03.02.2011, 14:27)

13

14.07.2008, 13:32

Nur eine Anmerkung:
windowmanager müsste eigentl. egal sein, da vllt. noch ein weiterer installiert ist und jeder Benutzer so einen anderen auswählen könnte. Außerdem könnte der windowmanager, selbst wenn nur einer installiert ist, in der Zukunft gewechselt werden müssen...

Übrigens: Aus der Beispiel.zip ging der Link immer in meinem Firefox auf, und dort wurde die .destop-Datei, wie eine Textdatei angezeigt.

Apropos, Du könntest Deine Präsentation vielleicht als HTML-Dateien anlegen, dann könntest Du ganz einfach relativ auf die zweite Präsentation verlinken.

Thema bewerten