我正在编写我的第一个PowerShell脚本,我遇到了一些麻烦。
到目前为止,我的系统会创建一个目录树并用文件填充它。最后一步是在我的桌面上放一个快捷方式。
我想出了以下代码:
$ShortcutFile = "$home\Desktop\" + $protocol + ".lnk"
If ( (test-path -path "$ShortcutFile") -ne $true)
{
$WScriptShell = New-Object -ComObject WScript.Shell
$Shortcut = $WScriptShell.CreateShortcut($ShortcutFile)
$Shortcut.TargetPath = $root_path
$Shortcut.Save()
}
这不起作用,因为我确信任何有经验的PowerShell用户都知道。创建文件而不是目录。我想解决这个问题的正确方法是更改WScript.Shell中的一个对象成员,它控制文件类型。我没有运气找到任何有关如何具体执行此操作的资源,或任何其他方式去做。我在MSDN网站上找到了API,但只列出了几个成员。必须有更多。 实现这一目标的最佳方法是什么?
由于
答案 0 :(得分:2)
假设您的意思是快捷键类型是File
而不是File folder
,那么解决方法就是制作一个Application
启动器,它始终有效。
我最初找到了这个解决方案here。
$wsshell = New-Object -ComObject WScript.Shell
$lnk = $wsshell.CreateShortcut($ShortcutFile)
$lnk.WindowStyle = 1
$lnk.TargetPath = "explorer.exe"
$lnk.Arguments = $TargetPath
$lnk.IconLocation = "explorer.exe,0"
$lnk.save() # This will overwrite the previous link if it existed
答案 1 :(得分:0)
我在创建不存在的目录的快捷方式时遇到了这种情况。如果我只是提前创建目录,则快捷方式可以正常工作。