puedo - ¿Cómo creo un acceso directo a través de la línea de comando en Windows?
no me aparece windows defender (6)
La mejor forma es ejecutar este archivo por lotes. abrir bloc de notas y tipo: -
@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 filename.bat (tenga cuidado al guardar seleccionar todos los tipos de archivos) funcionó bien en win XP.
Quiero que mi script .bat (test.bat) cree un acceso directo para que pueda copiarlo en mi carpeta de inicio de Windows 8.
He escrito esta línea de código para copiar el archivo, pero todavía no he encontrado la forma de crear dicho acceso directo, ya que puede ver que solo copia el script.
xcopy "C:/Users/Gabriel/Desktop/test.bat" "C:/Users/Gabriel/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup"
¿Me puede ayudar?
La respuesta de Rohit Sahu funcionó mejor para mí en Windows 10. Se ejecutó la solución PowerShell, pero no apareció ningún atajo. La solución de JScript me dio errores de sintaxis. No probé mklink, ya que no quería meterme con los permisos.
Quería que el atajo apareciera en el escritorio. Pero también necesitaba configurar el icono, la descripción y el directorio de trabajo. Tenga en cuenta que MyApp48.bmp es una imagen de 48x48 píxeles. Aquí está mi mod de la solución de Rohit:
@echo off
cd c:/MyApp
echo Set oWS = WScript.CreateObject("WScript.Shell") > CreateShortcut.vbs
echo sLinkFile = "%userprofile%/Desktop/MyApp.lnk" >> CreateShortcut.vbs
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> CreateShortcut.vbs
echo oLink.TargetPath = "C:/MyApp/MyApp.bat" >> CreateShortcut.vbs
echo oLink.WorkingDirectory = "C:/MyApp" >> CreateShortcut.vbs
echo oLink.Description = "My Application" >> CreateShortcut.vbs
echo oLink.IconLocation = "C:/MyApp/MyApp48.bmp" >> CreateShortcut.vbs
echo oLink.Save >> CreateShortcut.vbs
cscript CreateShortcut.vbs
del CreateShortcut.vbs
No se puede hacer con lotes puros. Comprueba el shortcutJS.bat JS.bat: es un híbrido jscript/bat
y se debe usar con la extensión .bat
:
call shortcutJS.bat -linkfile "%~n0.lnk" -target "%~f0" -linkarguments "some arguments"
Con -help
puedes consultar las otras opciones (puedes configurar íconos, permisos de administrador, etc.)
Podría usar un comando de PowerShell. Pegue esto en su script por lotes y creará un acceso directo a %~f0
en %userprofile%/Start Menu/Programs/Startup
:
powershell "$s=(New-Object -COM WScript.Shell).CreateShortcut(''%userprofile%/Start Menu/Programs/Startup/%~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 la sintaxis completa, y esta página web para obtener más información.
En su secuencia de comandos por lotes, haga lo siguiente:
mklink "%userprofile%/Start Menu/Programs/Startup/%~nx0" "%~f0"
El acceso directo creado no es un archivo tradicional .lnk, pero debería funcionar igual sin embargo. 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.
Presento un pequeño script híbrido [BAT / VBS] para crear un atajo de escritorio. Y, por supuesto, puede modificarlo para su propósito.
@echo off
mode con cols=87 lines=5 & color 9B
Title Shortcut Creator for your batch and applications files by Hackoo 2015
Set MyFile=%~f0
Set ShorcutName=HackooTest
(
echo Call Shortcut("%MyFile%","%ShorcutName%"^)
echo ^''**********************************************************************************************^)
echo Sub Shortcut(ApplicationPath,Nom^)
echo Dim objShell,DesktopPath,objShortCut,MyTab
echo Set objShell = CreateObject("WScript.Shell"^)
echo MyTab = Split(ApplicationPath,"/"^)
echo If Nom = "" Then
echo Nom = MyTab(UBound(MyTab^)^)
echo End if
echo DesktopPath = objShell.SpecialFolders("Desktop"^)
echo Set objShortCut = objShell.CreateShortcut(DesktopPath ^& "/" ^& Nom ^& ".lnk"^)
echo objShortCut.TargetPath = Dblquote(ApplicationPath^)
echo ObjShortCut.IconLocation = "Winver.exe,0"
echo objShortCut.Save
echo End Sub
echo ^''**********************************************************************************************
echo ^''Fonction pour ajouter les doubles quotes dans une variable
echo Function DblQuote(Str^)
echo DblQuote = Chr(34^) ^& Str ^& Chr(34^)
echo End Function
echo ^''**********************************************************************************************
) > Shortcutme.vbs
Start /Wait Shortcutme.vbs
Del Shortcutme.vbs
::***************************************Main Batch*******************************************
cls
echo Done and your main batch goes here !
echo i am a test
Pause > Nul
::********************************************************************************************
link.vbs
set fs = CreateObject("Scripting.FileSystemObject")
set ws = WScript.CreateObject("WScript.Shell")
set arg = Wscript.Arguments
linkFile = arg(0)
set link = ws.CreateShortcut(linkFile)
link.TargetPath = fs.BuildPath(ws.CurrentDirectory, arg(1))
link.Save
mando
C:/dir>link.vbs ../shortcut.txt.lnk target.txt