如何才能使我的环境变量(在批处理文件中设置)在设置此环境变量后立即执行的应用程序中可见?
以下是我使用的场景:
在我的外部脚本(这里不太重要)中,我创建了 jpg 文件的 Windows 快捷方式,目标如下所示:
%MYPHOTOSDRIVE%:\private\photos\photo001.jpg
%MYPHOTODRIVE% 应该只包含当前驱动器号。
我使用以下 BAT 脚本启动 IrfanView(脚本与所有 .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)都无法正确执行。
在 Irfan 执行时,这个“MYPHOTODRIVE”变量不应该扩展为适当的值吗?它不是获得与父脚本相同的环境吗?
答案1
问题是您没有将环境变量传递给 IrfanView,例如:
C:\> i_view32.exe %%myphotosdrive%%:\private\photos\photo001.jpg
你正在传递.LNK
文件(二进制)。IrfanView 不知道如何解释快捷方式文件;它只处理图形文件等。
你最好的选择是要求Irfan 添加了解析快捷方式文件的功能(他反应敏捷,擅长处理支持问题和功能请求)。