创建快捷方式时PowerShell中的目标路径问题

时间:2015-08-28 13:18:02

标签: powershell

我正在尝试在公共桌面上为用户创建一个捷径,但这个捷径的目标路径会导致一些问题。

$wshshell = New-Object -ComObject WScript.shell

$desktop = [System.Environment]::GetFolderPath("desktop")

$lnk = $wshshell.CreateShortcut("$desktop\CLMCPDEDEV.lnk")

$lnk.TargetPath = "C:\Program Files (x86)\Unisys\WebEnabler\Web Enabler.exe" "configfile=c:\development-installs\web-enabler-config\CLMCPDEDEV.cfg"

我在另一个文件夹中有配置文件,exe在不同的路径中。我是power shell的新用户,如何绕过"C:\Program Files (x86)\Unisys\WebEnabler\Web Enabler.exe""configfile=c:\development-installs\web-enabler-config\CLMCPDEDEV.cfg"之间的空格?当我手动执行此操作时,这是完整的快捷方式。任何指导都非常感谢。

1 个答案:

答案 0 :(得分:2)

引自CreateShortcut方法文档:

  

一个常见问题是将参数放在TargetPath属性中   快捷方式对象,它不起作用。快捷方式的所有参数   必须放在Arguments属性中。

所以你必须这样做:

$wshshell = New-Object -ComObject WScript.shell

$desktop = [System.Environment]::GetFolderPath('Desktop')

$lnk = $wshshell.CreateShortcut((Join-Path -Path $desktop -ChildPath 'CLMCPDEDEV.lnk'))

$lnk.TargetPath = 'C:\Program Files (x86)\Unisys\WebEnabler\Web Enabler.exe'
$lnk.Arguments = 'configfile=c:\development-installs\web-enabler-config\CLMCPDEDEV.cfg'

$lnk.Save()