Question [Concours Scripting] Get-Favorite (Validé !)
- Jacques Barathon
- Auteur du sujet
- Hors Ligne
- Administrateur
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 16 ans 7 mois #922
par Jacques Barathon
[Concours Scripting] Get-Favorite (Validé !) a été créé 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
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.
- Jacques Barathon
- Auteur du sujet
- Hors Ligne
- Administrateur
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 16 ans 7 mois #923
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:[Concours Scripting]get-favorite
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
Janel
Connexion ou Créer un compte pour participer à la conversation.
- Robin Lemesle
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 260
- Remerciements reçus 0
il y a 16 ans 7 mois #925
par Robin Lemesle
C'est fait janel
Bravo pour ce script, nous allons le tester et attribuer les points en conséquence.
Robin.
Robin MVP PowerShell
Réponse de Robin Lemesle sur le sujet Re:[Concours Scripting]get-favorite
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
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Contributions à la communauté
- [Concours Scripting] Get-Favorite (Validé !)