How to create shortcut icon using BATCH file which run my Java application?

29,103

This was asked and answered before here:

creating a shortcut for a exe from a batch file

One of the provided answers (not the accepted one) has this link:

http://www.robvanderwoude.com/amb_shortcutsnt.php

The relevant script is:

@echo off & setlocal
::For Windows NT 4.0 users only!!!
::Creates LNK and PIF files from the command line.
::Author: Walter Zackery
if not %1[==[ if exist %1 goto start
echo You must pass the path of a file or folder to the
echo batch file as a shortcut target.
if not %1[==[ echo %1 is not an existing file or folder
(pause & endlocal & goto:eof)
:start
(set hkey=HKEY_CURRENT_USER\Software\Microsoft\Windows)
(set hkey=%hkey%\CurrentVersion\Explorer\Shell Folders)
(set inf=rundll32 setupapi,InstallHinfSection DefaultInstall)
start/w regedit /e %temp%\#57#.tmp "%hkey%"

for /f "tokens=*" %%? in (
'dir/b/a %1? 2^>nul') do (set name=%%~nx?)

for /f "tokens=2* delims==" %%? in (
'findstr/b /i """desktop"""= %temp%\#57#.tmp') do (set d=%%?)

for /f "tokens=2* delims==" %%? in (
'findstr/b /i """programs"""= %temp%\#57#.tmp') do (set p=%%?)

(set d=%d:\\=\%) & (set p=%p:\\=\%)
if not %2[==[ if exist %~fs2\nul (set d=%~fs2)
if not %2[==[ if exist %~fs2nul (set d=%~fs2)
set x=if exist %2\nul
if not %2[==[ if not %d%==%2 %x% if "%~p2"=="\" set d=%2
echo %d%|find ":\" >nul||(set d=%d%\)
(set file=""""""%1"""""")
for /f "tokens=1 delims=:" %%? in ("%file:"=%") do set drive=%%?
(set progman=setup.ini, progman.groups,,)
echo > %temp%\#k#.inf [version]
echo >>%temp%\#k#.inf signature=$chicago$
echo >>%temp%\#k#.inf [DefaultInstall]
echo >>%temp%\#k#.inf UpdateInis=Addlink
echo >>%temp%\#k#.inf [Addlink]
echo >>%temp%\#k#.inf %progman% ""group200="}new{"""
echo >>%temp%\#k#.inf setup.ini, group200,, """%name%"",%file%
start/w %inf% 132 %temp%\#k#.inf
del %temp%\#k#.inf %temp%\#57#.tmp
move %p%\"}new{\*.*" %d% >nul 2>&1
rd %p%\}new{ 2>nul
move %p%\}new{.lnk %d%\"drive %drive%.lnk" >nul 2>&1
endlocal

Not sure if that will fly all the way into Win7 and 8

Share:
29,103
Admin
Author by

Admin

Updated on July 07, 2022

Comments

  • Admin
    Admin almost 2 years

    I have a windows.bat file which is actually my custom installer. When everything is installed i finally need to create one desktop shortcut icon, which has icon, and link to execute my Java jar. I successfully made one but its using VBS, what i am trying to do now is avoid using VBS but do it completely using BATCH file only. But how do i make this following in BATCH file?

    Example:

    enter image description here

    1) Create an empty file vbs.vbs and paste this code to desktop

    set WshShell = WScript.CreateObject("WScript.Shell" ) 
    strDesktop = WshShell.SpecialFolders("AllUsersDesktop" ) 
    set oShellLink = WshShell.CreateShortcut(strDesktop & "\StackOverflow shortcut.lnk") 
    oShellLink.TargetPath = "c:\application folder\application.exe" 
    oShellLink.WindowStyle = 1 
    oShellLink.IconLocation = "c:\application folder\application.ico" 
    oShellLink.Description = "Shortcut Script" 
    oShellLink.WorkingDirectory = "c:\application folder" 
    oShellLink.Save 
    

    2) Double click the the vbs.vbs file and instantly it creates a shortcut file in the desktop tested in Windows XP works

    But how do i skip the VBS process and do it completely from my BATCH script? (Is there any way using RUNDLL32.EXE APPWIZ.CPL,NewLinkHere (Dest))

    • rene
      rene over 12 years
      do you want it to work for Windows XP upwards?
    • Admin
      Admin over 12 years
      @rene: Windows XP, Vista, Windows 7, Windows 8. I want to make it work.
  • Sandeep Yohans
    Sandeep Yohans over 11 years
    Is there a solution available for creating shortcuts on Windows 7?
  • Sandeep Yohans
    Sandeep Yohans over 11 years
    since it specifically said For Windows NT 4.0 users only!!! I didn't giv a try to it but instead found a solution at link will check it as well if this doesn't work. Thanks