it-swarm-ja.com

.lnkショートカットの環境変数

変数の宛先javaw.exeを開くWindowsショートカットを作成したいと思います。この宛先は、システム環境変数%MY_OWN_Java_HOME%の内容です。

私がやろうとした:

  1. フォルダを右クリック(Windowsエクスプローラを使用)
  2. New => Shortcut
  3. 宛先:%MY_OWN_Java_HOME%\bin\javaw.exe -cp ......
  4. NextFinish

問題は、環境変数が作成時に計算であるということです。この環境変数の設定を開くと、変数のcurrent値が使用されます。

変数をショートカットの宛先として保持するにはどうすればよいですか?

1
slartidan

VBScriptまたはPowerShellのCOMオブジェクトを使用して、環境変数を使用してショートカットを作成できるはずです。メソッド " CreateShortcut "(引数についても詳細 ここ )はそれが可能です。元々はvbscriptソリューションでしたが、次のようなPowerShellプロンプトからこれを呼び出すことができます。

$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("C:\Users\Public\Desktop\My Java Shortcut.lnk")
$Shortcut.TargetPath = "%SMS_ADMIN_UI_PATH%\javaw.exe"
$Shortcut.Arguments = "-cp"
$Shortcut.Save()

引数はターゲットパスに入らないことに注意してください。また、環境変数にスペースが含まれている場合は機能しない可能性があります。これの利点は、ラッパーではなく実際のショートカットがあることです。欠点は、プロパティダイアログからこのショートカットを変更できないことです。これを行うとすぐに、変数は再び置き換えられます。

ラッパーが必要な場合は、完全にサイレントなvbsファイルもお勧めします。新しいテキストファイルを作成し、行を貼り付けます

CreateObject("WScript.Shell").Run """%MY_OWN_Java_HOME%\bin\javaw.exe"" -cp", , False

そこに「runmyjava.vbs」として保存し、そのファイルへのショートカットを作成すると、ほんの一瞬でも黒いポップアップが表示されなくなります。実行可能ファイルへのパスの後の前にある余分な「」に注意してください。これらは、環境変数にスペースが含まれている場合にのみ必要です。

2
Syberdoor

1つの解決策は、WindowsXPで作成された.lnkショートカットファイルを使用することです。これらのショートカットは、宛先を変更した場合でも、変数をショートカットの宛先に保持します。


別の解決策は、コメントで@DavidPostillが示唆しているように、ショートカットターゲットとして次のようなバッチファイルを使用することです。

@echo off
start "" "%MY_OWN_Java_HOME%\bin\javaw.exe" %*

次に、ショートカットオプションで[最小化]を選択します。

このソリューションは正常に機能しますが、最小化されたcmd-popupが1秒間開きます。

1
slartidan