création d'un raccourci pour un exe à partir d'un fichier de commandes

comment créer un raccourci pour un exe à partir d'un fichier de commandes.

j'ai essayé

call link.bat "c:program FilesApp1program1.exe" "C:Documents and Settings%USERNAME%Desktop" "C:Documents and Settings%USERNAME%Start MenuPrograms" "Program1 shortcut"

mais il n'a pas travaillé.

lien.chauve-souris peut être trouvé à http://www.robvanderwoude.com/amb_shortcuts.html

24
demandé sur Jay Bazuzi 2008-12-06 11:59:56

9 réponses

votre lien pointe vers une version de Windows 95/98 et je suppose que vous avez au moins Windows 2000 ou XP. Vous devriez essayer la version NT ici.

alternativement utilisez un petit VBScript que vous pouvez appeler depuis la ligne de commande:

set objWSHShell = CreateObject("WScript.Shell")
set objFso = CreateObject("Scripting.FileSystemObject")

' command line arguments
' TODO: error checking
sShortcut = objWSHShell.ExpandEnvironmentStrings(WScript.Arguments.Item(0))
sTargetPath = objWSHShell.ExpandEnvironmentStrings(WScript.Arguments.Item(1))
sWorkingDirectory = objFso.GetAbsolutePathName(sShortcut)

set objSC = objWSHShell.CreateShortcut(sShortcut) 

objSC.TargetPath = sTargetPath
objSC.WorkingDirectory = sWorkingDirectory

objSC.Save

Enregistrer le fichier comme createLink.vbs et de l'appeler comme ça pour obtenir ce que vous avez initialement essayé:

cscript createLink.vbs "C:\Documents and Settings\%USERNAME%\Desktop\Program1 shortcut.lnk" "c:\program Files\App1\program1.exe" 
cscript createLink.vbs "C:\Documents and Settings\%USERNAME%\Start Menu\Programs\Program1 shortcut.lnk" "c:\program Files\App1\program1.exe" 

cela dit, je vous recommande vivement de ne pas utiliser de chemins codés comme "Start Menu" car ils sont différents dans localisés les versions de windows. Modifiez le script à la place pour utiliser dossiers spéciaux.

23
répondu VVS 2012-07-20 10:08:57

C'est le genre de chose que PowerShell est vraiment bon à, et est donc une raison d'éviter les fichiers batch et de prendre le train en marche.

PowerShell peut parler à .NET