2014-06-27 3 views
1

J'ai un script qui épingle les raccourcis d'application à la barre des tâches de Windows.Empêche les raccourcis épinglés à la barre des tâches par un script d'être supprimé lors de la réexécution du script

Le script que j'ai fonctionne correctement lorsque vous épinglez les raccourcis. Cependant, si le script est exécuté une seconde fois, il supprimera les raccourcis précédemment épinglés.

La question semble être ici:

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

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

Comment puis-je arrêter les éléments épinglés étant supprimés si elles existent déjà?

Répondre

0

Ne comptez pas les verbes qui ont le mot "Détacher" en eux:

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

Tout ce que je avais besoin. Merci de votre aide! – pcoul

0

Vous pouvez vérifier si les liens sont présents ici:

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

avant essayer d'épingler.

0

vous pouvez essayer $item.Verbs() | ? {$_.Name -eq 'Pin to Tas&kbar'}

Questions connexes