Solución:
Puede usar un comando de PowerShell. Pegue esto en su secuencia de comandos por lotes y creará un acceso directo a %~f0
en %userprofile%Start MenuProgramsStartup
:
powershell "$s=(New-Object -COM WScript.Shell).CreateShortcut('%userprofile%Start MenuProgramsStartup%~n0.lnk');$s.TargetPath="%~f0";$s.Save()"
Si prefiere no usar PowerShell, puede usar mklink
para hacer un enlace simbólico. Sintaxis:
mklink saveShortcutAs targetOfShortcut
Ver mklink /?
en una ventana de consola para ver la sintaxis completa, y esta página web para obtener más información.
En su secuencia de comandos por lotes, haga:
mklink "%userprofile%Start MenuProgramsStartup%~nx0" "%~f0"
El acceso directo creado no es un archivo .lnk tradicional, pero debería funcionar igual. Tenga en cuenta que esto solo funcionará si el archivo .bat se ejecuta desde la misma unidad que su carpeta de inicio. Además, aparentemente se requieren derechos de administrador para crear enlaces simbólicos.
No se puede hacer con lote puro. Verifique el atajo JS.bat – es un jscript/bat
híbrido y debe usarse con .bat
extensión:
call shortcutJS.bat -linkfile "%~n0.lnk" -target "%~f0" -linkarguments "some arguments"
Con -help
puede verificar las otras opciones (puede configurar el icono, los permisos de administrador, etc.)
La mejor forma es ejecutar este archivo por lotes. abra el bloc de notas y escriba: –
@echo off
echo Set oWS = WScript.CreateObject("WScript.Shell") > CreateShortcut.vbs
echo sLinkFile = "GIVETHEPATHOFLINK.lnk" >> CreateShortcut.vbs
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> CreateShortcut.vbs
echo oLink.TargetPath = "GIVETHEPATHOFTARGETFILEYOUWANTTHESHORTCUT" >> CreateShortcut.vbs
echo oLink.Save >> CreateShortcut.vbs
cscript CreateShortcut.vbs
del CreateShortcut.vbs
Guardar como nombre de archivo.bat (tenga cuidado al guardar seleccionar todos los tipos de archivos) funcionó bien en win XP.