防止脚本固定到任务栏的快捷方式在重新运行脚本时被删除

时间:2014-06-27 10:39:01

标签: powershell shortcuts taskbar

我有一个脚本可以将应用程序快捷方式固定到Windows任务栏。

固定快捷键时,我的脚本运行正常。但是,如果脚本第二次运行,它将删除之前固定的快捷方式。

问题似乎在这里:

$appWord = "C:\Temp\Word.lnk"
$appWord = "C:\Temp\Excel.lnk"
$apps = @($appWord, $appExcel)

foreach($_ in $apps)
{
($shortcuts.ParseName($_).verbs() | ? {$_.Name -match "Tas&kbar"}).Doit()
}

如果固定的项目已经存在,如何停止它们?

3 个答案:

答案 0 :(得分:0)

您可以检查链接是否存在于此处:

C:\Users\Your-User-Name\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar

在试图确定之前。

答案 1 :(得分:0)

排除其中包含“取消固定”一词的动词:

$apps | % {
  $verb = $shortcuts.ParseName($_).verbs() | ? {
    $_.Name -match "Tas&kbar" -and $_.Name -notmatch 'unpin'
  }
  $verb.Doit()
}

答案 2 :(得分:0)

您可以尝试$item.Verbs() | ? {$_.Name -eq 'Pin to Tas&kbar'}