¿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:
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.
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.LNK
archivo (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).