tt-web
Goto Top

Virtuelle Pfade und Umgebungsvariablen für mobile Anwendungen

Hallo,
ich habe auf einer Externen Festplatte eine komplette Latex-Umgebung, incl. Ghostscript, Ghostview, Texmaker und Aspell untergebracht. Über ein kleines Init-Script werden für die Umgebung allerlei Pfade gesetzt. Mein Problem ist, dass ich zum Beispiel "The Gimp" den Pfad zur Ghostscript-Umgebung angeben muss, damit er eps/ps Dateien verarbeiten kann. Nun möchte ich nicht einfach nur z:/programme/gs... angeben (ich habe die Festplatte extra schon als Laufwerk z angegeben, um sicher zu sein, dass der Pfad an jedem Rechner gleich bleibt), sondern ich möchte die Umbebungsvariable für the gimp relativ setzen.

Im Moment sieht das noch so aus:

GS_PROG=z:\Programme\latexbackend\gs\gs8.61\bin\gswin32c.exe

ich möchte aber, dass es garantiert immer funktioniert und lieber etwas im Stil von:

GS_PROG=%~dp0gs\gs\gs8.61\bin\gswin32c.exe

machen. Dieser Ansatz funktioniert aber nicht.

Die init.bat für meine Latexumgebung setzt folgenden Pfad:

set path=%~dp0texmf\miktex\bin;%path%

Weiter unten wird dann Ghostview der Pfad zu Ghostscript mitgeteilt:

echo GhostscriptEXE=%~dp0gs\gs%GS_VERSION%\bin\gswin32c.exe>> "%
~dp0Ghostgum\gsview\gsview32.ini"

Die Umgebungsvariable "GS_PROG" steht in der Datei default.env, die von Gimp beim Start aufgerufen wird. Ich vermute, dass ich den variablen Pfad "%~dp0gs" schon vorher mittels batchscript (wie auch immer) erstellen muss.... Wie mache ich soetwas?
Vielen Dank für die Hilfe
Thomas

Content-Key: 79293

Url: https://administrator.de/contentid/79293

Printed on: April 24, 2024 at 07:04 o'clock

Member: miniversum
miniversum Jan 28, 2008 at 09:38:36 (UTC)
Goto Top
Gib mal in der cmd den befehl set ein. dann siehst du die Umgebungsvariabeln die existieren.
Dann siehst du das Du es z.B. so versuchen kannst:
GS_PROG=%ProgramFiles%\latexbackend\gs\gs8.61\bin\gswin32c.exe

miniversum
Member: tt-web
tt-web Jan 28, 2008 at 10:08:58 (UTC)
Goto Top
Gib mal in der cmd den befehl set ein. dann
siehst du die Umgebungsvariabeln die
existieren.
Dann siehst du das Du es z.B. so versuchen
kannst:
GS_PROG=%ProgramFiles%\latexbackend\gs\gs8.61\bin\gswin32c.exe


miniversum

Hallo,
%ProgramFiles% würde aber auf den Windows Ordner Programme verweisen. Die Daten liegen aber auf einer externen Festplatte bzw. einem USB-Stick. Der Ordner heisst nur aus Gründen der Übersichtlichkeit Programme.

Wenn ich also den Stick bzw. die Platte anhänge lasse ich die init.bat laufen. Diese erzeugt mir alle möglichen Registryeinträge und Pfade, die dann den Programmen den Pfad für Ghostscript und Co. mitteilen. Wenn ich fertig bin lösche ich diese wieder, so dass keine Installation (local) von GS,GV usw. notwendig ist.

Dieses Prinzip will ich auch für GIMPportable nutzen. Hierfür muss ich aber dem Programm mitteilen, wo es die Daten finden kann. Da der Stick auf jedem Rechner aber einen anderen Laufwerksbuchstaben bekommt ist es nicht zweckmäßig nach dem Schema "x:\pfad\prog.exe" vorzugehen. Es müsste eben etwas virtuelles sein. Soetwas wie ein Zeiger auf den korrekten Pfad, der beim Aufruf gesetzt wird.... anders kann ich es leider aufgrund mangelnder Fachausdrücke nicht beschreiben. Hoffentlich hilft das weiter.

Liebe Grüße Thomas
Member: miniversum
miniversum Jan 28, 2008 at 11:20:12 (UTC)
Goto Top
Ok.
Und wen du das %~dp0 durch %cd% ersetzt?
Member: tt-web
tt-web Jan 28, 2008 at 11:43:32 (UTC)
Goto Top
Ok.
Und wen du das %~dp0 durch %cd% ersetzt?

Mal ganz blöd gefragt: einfach nur %cd%? woher soll denn die applikation dann den pfad kennen? Oder hab ich jetzt nen Denkfehler?

Gruß Thomas
Member: bastla
bastla Jan 28, 2008 at 12:36:46 (UTC)
Goto Top
Hallo tt-web und willkommen im Forum!

Nur mal so als Überlegung: Die relativen Pfade bleiben ja gleich (und absolut gesehen sollte sich auch nur der Laufwerksbuchstabe ändern) - richtig?

Ließe sich dann nicht in die "default.env" eine Pfadangabe der Art "\Programme\latexbackend\gs\" (oder auch, noch flexibler, "..\..\gs\") unterbringen? Dann müsstest Du auch gar nicht erst daran denken, ev mit "sed" alle "Z:\" durch "X:\" zu ersetzen ...

Grüße
bastla
Member: miniversum
miniversum Jan 28, 2008 at 15:45:55 (UTC)
Goto Top
in %CD% steht der aktuelle Laufwerksbuchstabe und der Pfad.