Im Stapel gesetzte Umgebungsvariable wird nicht in der Verknüpfung erweitert

1069
schedar

Wie kann ich meine Umgebungsvariable (in Batchdatei gesetzt) ​​in der Anwendung sichtbar machen, die direkt nach dem Einstellen dieser Umgebungsvariablen ausgeführt wird?

Hier ist das Szenario, das ich verwende:

  1. In meinem externen Skript (hier nicht ganz wichtig) erstelle ich Windows-Verknüpfungen zu JPG-Dateien, wobei das Ziel wie folgt aussieht:

    %MYPHOTOSDRIVE%:\private\photos\photo001.jpg 

    % MYPHOTODRIVE% sollte nur einen aktuellen Laufwerksbuchstaben enthalten.

  2. Ich starte IrfanView mit dem folgenden BAT-Skript (das Skript befindet sich im selben Verzeichnis wie alle LNK-Dateien):

    set MYPHOTOSDRIVE=%cd:~0,2% "c:\Program Files\IrfanView\i_view32.exe" "i:\private\photolinks\photo001.lnk" "c:\Program Files\IrfanView\i_view32.exe" /slideshow="%cd%" 

Das Problem ist, dass weder das Einzelbild noch eine Diaschau (für den zweiten Aufruf von IrfanView) ordnungsgemäß ausgeführt wird.

Sollte diese "MYPHOTODRIVE" -Variable nach der Ausführung von Irfan nicht auf einen geeigneten Wert erweitert werden? Bekommt es nicht dieselbe Umgebung wie das übergeordnete Skript?

1
** (1) ** Sehen Sie sich den Eigenschaften-Dialog für Ihre Bildverknüpfungen an. Haben sie noch "% MYPHOTOSDRIVE%"? Wenn diese Variable nicht global festgelegt ist (für Windows und nicht nur für eine einzige Konsoleninstanz), wird sie vom Explorer nicht verwendet. ** (2) ** Fügen Sie nach dem Set eine Zeile wie "echo %% MYPHOTOSDRIVE %%" hinzu, um zu sehen, ob sie korrekt ist. ** (3) ** Ich glaube nicht, dass IrfanView eine Abkürzung nehmen kann; es wird nicht automatisch aufgelöst. Synetech vor 12 Jahren 0
* 1 Ja, alle Bildverknüpfungen enthalten% MYPHOTOSDRIVE% anstelle eines Laufwerkbuchstabens. * 2 Env. Die Variable ist richtig eingestellt, wenn ich sie auf diese Weise überprüfe. * 3 Ich hatte gehofft, dass es genauso funktioniert wie beim Aufruf eines anderen Batch-Skripts vom ersten. In diesem Fall würde diese Variable auf einen richtigen Wert erweitert werden ... schedar vor 12 Jahren 0

1 Antwort auf die Frage

0
Synetech

Das Problem ist, dass Sie keine Umgebungsvariable an IrfanView übergeben, zB:

C:\> i_view32.exe %%myphotosdrive%%:\private\photos\photo001.jpg 

Sie übergeben eine .LNKDatei (die binär ist). IrfanView kann keine Verknüpfungsdateien interpretieren. Es verarbeitet nur Grafikdateien und dergleichen.

Am besten fordern Sie Irfan auf, die Fähigkeit hinzuzufügen, Verknüpfungsdateien aufzulösen (er ist sehr ansprechend und kann Supportfragen und Funktionsanfragen bearbeiten).

Du hast recht. Ich habe hier eine Anfrage erstellt: http://irfanview-forum.de/showthread.php?8865-Expansion-of-environment-variables- während der Laufzeit schedar vor 12 Jahren 0