如何使我的環境變數(在批次檔中設定)在設定此環境變數後立即執行的應用程式中可見?
這是我使用的場景:
在我的外部腳本(這裡不太重要)中,我建立了 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 增加了解決快捷方式文件的功能(他反應靈敏並且擅長處理支援問題和功能請求)。