批处理中设置的环境变量未在快捷方式中展开

批处理中设置的环境变量未在快捷方式中展开

如何才能使我的环境变量(在批处理文件中设置)在设置此环境变量后立即执行的应用程序中可见?

以下是我使用的场景:

  1. 在我的外部脚本(这里不太重要)中,我创建了 jpg 文件的 Windows 快捷方式,目标如下所示:

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

    %MYPHOTODRIVE% 应该只包含当前驱动器号。

  2. 我使用以下 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 添加了解析快捷方式文件的功能(他反应敏捷,擅长处理支持问题和功能请求)。

相关内容