バッチで設定された環境変数はショートカットで展開されません


1

この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)画像のショートカットの[プロパティ]ダイアログを確認します。彼らはまだ持ってい%MYPHOTOSDRIVE%ますか?その変数がグローバルに設定されていない場合(単一のコンソールインスタンスだけでなく、すべてのWindowsに対して)、Explorerはそれを使用しません。(2)set同様の行を追加して、echo %%MYPHOTOSDRIVE%%正しいかどうかを確認してください。(3) IrfanViewがショートカットを取ることはできないと思います。自動的には解決されません。
Synetech

* 1はい、すべての画像ショートカットにはドライブ文字ではなく%MYPHOTOSDRIVE%があります。* 2環境 この方法でチェックすると、変数が適切に設定されます。* 3最初のバッチスクリプトから別のバッチスクリプトを呼び出すときと同じように機能することを望んでいました。この場合、この変数は適切な値に展開されます
...-schedar

回答:


0

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

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

.LNKファイル(バイナリ)を渡します。IrfanViewは、ショートカットファイルの解釈方法を知りません。グラフィックファイルなどのみを処理します。

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


あなたが正しい。私はここで要求を作成しました:irfanview-forum.de/...
schedar
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.