La variable de entorno establecida en lote no se expande en el acceso directo

La variable de entorno establecida en lote no se expande en el acceso directo

¿Cómo puedo hacer que mi variable de entorno (configurada en un archivo por lotes) sea visible en la aplicación ejecutada justo después de configurar esta variable de entorno?

Este es el escenario que uso:

  1. En mi script externo (no muy importante aquí) creo accesos directos de Windows a archivos jpg, con el objetivo parecido a:

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

    %MYPHOTODRIVE% debe contener solo una letra de unidad actual.

  2. Inicio IrfanView usando el siguiente script BAT (el script se encuentra en el mismo directorio que todos los archivos .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%"
    

El problema es que ni la imagen individual ni la presentación de diapositivas (para la segunda llamada a IrfanView) se ejecutan correctamente.

¿No debería ampliarse esta variable "MYPHOTODRIVE" a un valor adecuado tras la ejecución de Irfan? ¿No obtiene el mismo entorno que el script principal?

Respuesta1

El problema es que no estás pasando una variable de entorno a IrfanView, por ejemplo:

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

Le estás pasando un.LNKarchivo (que es binario). IrfanView no sabe interpretar archivos de acceso directo; sólo maneja archivos gráficos y demás.

Tu mejor apuesta espedidoque Irfan agregue la capacidad de resolver archivos de acceso directo (es bastante receptivo y bueno manejando preguntas de soporte y solicitudes de funciones).

información relacionada