2

Based on: How to create a shortcut using a batch script?

I can't figure out how to write this batch so all the quotes are in the right place and create the shortcut file. I used the above info as reference. My final target should be

Target: %COMSPEC% /c start "" "E:\PinballEmporium\Core\RetroFE.exe"

This is the batch I've wrote, if I remove everything after the word 'start' it will write the shortcut file, but obviously that's not all I need. (This is being launched from 'E:\PinballEmporium')

@echo off

set SCRIPT="%TEMP%%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs" echo Set oWS = WScript.CreateObject("WScript.Shell") >> %SCRIPT% echo sLinkFile = "%USERPROFILE%\Desktop\Pinball Emporium.lnk" >> %SCRIPT% echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %SCRIPT%

REM %COMSPEC% /c start "" "E:\PinballEmporium\Core\RetroFE.exe" echo oLink.TargetPath = "%%COMSPEC%% /c start "" "%cd%\Core\RetroFE.exe"" >> %SCRIPT% REM echo oLink.Arguments="%cd%\Core\RetroFE.exe" >> %SCRIPT%

echo oLink.IconLocation="%cd%\PEICON.ico" >> %SCRIPT% echo oLink.WorkingDirectory="%cd%" >> %SCRIPT% echo oLink.WindowStyle="0" >> %SCRIPT% echo oLink.Description="Shortcut for Pinball Emporium" echo oLink.Save >> %SCRIPT% cscript /nologo %SCRIPT% del %SCRIPT%

NateMac00
  • 21
  • 2

1 Answers1

2

You can give a try for this batch file :

@echo off
Title Batch Shortcut Creator
Set "ShortcutName=Pinball Emporium"
Set "TargetPath=E:\PinballEmporium\Core\RetroFE.exe"
Set "IconLocation=%cd%\PEICON.ico"
Call :Create_Shortcut "%ShortcutName%" "%TargetPath%" "%IconLocation%"
EXIT
REM -----------------------------------------------------------------------------
:Create_Shortcut
Set "VBS_Shortcut=%temp%\%~n0.vbs"
>"%VBS_Shortcut%" (
    echo    Call Create_Shortcut("%~1","%~2","%~3"^)
    echo    Sub Create_Shortcut(ShortcutName,TargetPath,IconLocation^)
    echo        Dim objShell,DesktopPath,objShortCut
    echo        Set objShell = CreateObject("WScript.Shell"^)
    echo        DesktopPath = objShell.SpecialFolders("Desktop"^)
    echo        Set objShortCut = objShell.CreateShortcut(DesktopPath ^& "\" ^& ShortcutName ^& ".lnk"^)
    echo        objShortCut.TargetPath = chr(34^) ^& TargetPath ^& chr(34^)
    echo        objShortCut.IconLocation="%~3"
    echo        objShortCut.Save
    echo    End Sub
)
cscript //nologo "%VBS_Shortcut%" "%~1" "%~2" "%~3"
If Exist "%VBS_Shortcut%" Del "%VBS_Shortcut%" 
Exit /B
REM ------------------------------------------------------------------------------
Hackoo
  • 1,410