バッチで設定された環境変数がショートカットで展開されない

バッチで設定された環境変数がショートカットで展開されない

この envvar を設定した直後に実行されるアプリケーションで、環境変数 (バッチ ファイルで設定) を表示するにはどうすればよいですか?

私が使用するシナリオは次のとおりです。

  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 への 2 回目の呼び出し)も適切に実行されないことです。

この「MYPHOTODRIVE」変数は、Irfan 実行時に適切な値に拡張されるべきではないでしょうか? 親スクリプトと同じ環境を取得しませんか?

答え1

問題は、IrfanView に環境変数を渡していないことです。例:

C:\> i_view32.exe %%myphotosdrive%%:\private\photos\photo001.jpg

あなたはそれを渡しています.LNKファイル (バイナリ)。IrfanView はショートカット ファイルを解釈する方法を知らず、グラフィック ファイルなどのみを処理します。

一番いいのはリクエストIrfan がショートカット ファイルを解決する機能を追加すること (彼は非常に反応が良く、サポートに関する質問や機能のリクエストの処理が得意です)。

関連情報