我正在尝试在公共桌面上为用户创建一个捷径,但这个捷径的目标路径会导致一些问题。
$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"
之间的空格?当我手动执行此操作时,这是完整的快捷方式。任何指导都非常感谢。
答案 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()