在PowerShell中创建目录快捷方式

时间:2015-07-16 16:39:21

标签: powershell

我正在编写我的第一个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,但只列出了几个成员。必须有更多。 实现这一目标的最佳方法是什么?

由于

2 个答案:

答案 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)

我在创建不存在的目录的快捷方式时遇到了这种情况。如果我只是提前创建目录,则快捷方式可以正常工作。