Переменная среды, заданная в пакете, не раскрывается в ярлыке

Переменная среды, заданная в пакете, не раскрывается в ярлыке

Как сделать переменную окружения (установленную в пакетном файле) видимой в приложении, запущенном сразу после установки этой переменной окружения?

Вот сценарий, который я использую:

  1. В моем внешнем скрипте (здесь это не так важно) я создаю ярлыки Windows для файлов jpg, при этом цель выглядит так:

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

    %MYPHOTODRIVE% должен содержать только текущую букву диска.

  2. Я запускаю IrfanView с помощью следующего BAT-скрипта (скрипт находится в том же каталоге, что и все .lnk-файлы):

    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%"
    

Проблема в том, что ни отдельное изображение, ни слайд-шоу (для второго вызова IrfanView) не выполняются должным образом.

Не следует ли расширить эту переменную "MYPHOTODRIVE" до надлежащего значения при выполнении Irfan? Разве она не получает ту же среду, что и родительский скрипт?

решение1

Проблема в том, что вы не передаете переменную окружения в IrfanView, например:

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

Вы передаете это.LNKфайл (который является двоичным). IrfanView не умеет интерпретировать файлы ярлыков; он обрабатывает только графические файлы и т. п.

Ваш лучший выбор —запросчтобы Ирфан добавил возможность разрешения файлов ярлыков (он довольно отзывчив и хорошо справляется с вопросами поддержки и запросами функций).

Связанный контент