Question

I'm normally a Linux guy, but I need to write a batch script on Windows to change the target of some shortcuts. Is there a command to do that?

Was it helpful?

Solution

I doubt there is a way to do it with a batch script. It's doable in VBScript, though.

Set sh = CreateObject("WScript.Shell")
Set shortcut = sh.CreateShortcut("C:\Wherever\Shortcut.lnk")
shortcut.TargetPath = "C:\Wherever\Whatever.txt"
shortcut.Save

Save the script in a file ending in vbs and run it from the command line using cscript whatever.vbs.

(Don't be fooled by the name -- CreateShortcut is used to both create and modify shortcuts.)

OTHER TIPS

There isn't a native program that comes with windows to achieve this. I scoured the internet for this same functionality awhile ago and stumbled upon the free software XXMKLINK.

With XXMKLINK, you can write a batch file for software installation which has been done by specialized instllation programs. Basically, XXMKLINK is to gather the information from a command line and package it into a shortcut.

Command syntax of XXMKLINK:

xxmklink spath opath [ arg [ wdir [ desc [ mode [ icon[:n] ]]]]]

where 

  spath     path of the shortcut (.lnk added as needed)
  opath     path of the object represented by the shortcut
  arg       argument string (use quotes with space, see below)
  wdir      path of the working directory (for "Start in")
  desc      description string (shown in Shosrtcut's Properties)
  mode      display mode (1:Normal [default], 3:Maximized, 7:Minimized)
  icon[:n]  icon file [with optional icon index value n]

  In addition to the above, the following switches are supported
  which can be placed in any position in the command line.

  /p        prompts before action
  /q        no output when successful (quiet)
  /e        checks error condition strictly

The downside is you'll need to copy the xxmklink exe onto each computer with the batch script.

A link to download it is available at the bottom of the linked page.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top