批次設定的環境變數未在快捷方式中擴展

批次設定的環境變數未在快捷方式中擴展

如何使我的環境變數(在批次檔中設定)在設定此環境變數後立即執行的應用程式中可見?

這是我使用的場景:

  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 增加了解決快捷方式文件的功能(他反應靈敏並且擅長處理支援問題和功能請求)。

相關內容