Question [Concours Scripting] Get-Favorite (Validé !)

Plus d'informations
il y a 16 ans 7 mois #922 par Jacques Barathon
Quelle belle idée ce concours! J'espère que nous serons nombreux à y participer.

En tout cas, voici déjà ma première contribution. Il s'agit d'un script que j'avais commencé il y a plusieurs mois puis laissé en chantier, et sur lequel j'ai encore un peu de travail avant d'aboutir au résultat escompté. Cependant, la version actuelle peut déjà être utile pour un usage ponctuel:

[code:1]
# get-favorite.ps1
#
# Retourne les favoris IE correspondant au critère passé en paramètre
#
# Usage: get-favorite $criteria
#
# Exemple:
#
# get-favorite powershell
# ... retourne tous les favoris dont le nom contient le terme 'powershell'
#
# Ce script ajoute une propriété URL et une méthode Navigate2() aux
# favoris retournés:
#
# $psfav = get-favorite powershell
# $psfav | format-table name,url
# $psfav | foreach {$_.Navigate2()}
#

param ($criteria = \"\"«»)

# Création du bloc d'instructions qui seront ajoutées comme méthode:

$Navigate2 = [scriptblock] {
$ie = new-object -com InternetExplorer.Application
$ie.Navigate2($this.URL)
$ie.Visible = $true
$shell = new-object -com WScript.Shell
$shell.AppActivate((get-process | where {$_.MainWindowHandle -eq $ie.HWND}).Id)
}

# recherche des fichiers URL correspondant au critère passé en paramètre:

@(dir \"$([Environment]::GetFolderPath([Environment+SpecialFolder]::Favorites))\" -i *.url -r | where {$_.name -match $criteria}) |

# pour chaque fichier, ajout de la propriété URL et de la méthode Navigate2:

foreach {
add-member -in $_ -type NoteProperty -name URL -value $(type $_ | where {$_ -match \"^URL=(?<URL>.*)\"} | out-null; $matches.URL)
add-member -in $_ -type ScriptMethod -name Navigate2 -value $Navigate2 -passthru
}
[/code:1]
J'espère que les commentaires inclus dans le script suffiront. N'hésitez pas si vous avez des questions.

Pour info, dans une future version je souhaite ajouter la vérification de la validité des URL et la possibilité de supprimer les fichiers si les URL sont invalides. Peut-être, qui sait, d'ici la fin du concours? :)

Janel<br><br>Message édité par: Arnaud, à: 14/09/07 09:22

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 7 mois #923 par Jacques Barathon
Argh, le timeout de la mort a encore frappé! Arnaud, Robin, vous pouvez effacer une de mes deux contributions, il s'agit bien du même script dans les deux cas... Merci.

Janel

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 7 mois #925 par Robin Lemesle

Argh, le timeout de la mort a encore frappé! Arnaud, Robin, vous pouvez effacer une de mes deux contributions


C'est fait janel ;)

Bravo pour ce script, nous allons le tester et attribuer les points en conséquence.

Robin.

Robin MVP PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.065 secondes
Propulsé par Kunena