Question vos meilleurs techniques et trucs PS
- jojo
-
Auteur du sujet
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 187
- Remerciements reçus 0
il y a 15 ans 1 mois #8605
par jojo
vos meilleurs techniques et trucs PS a été créé par jojo
Bonsoir les PowerShelleurs 
Ce post est dédier pour le partage de vos techniques ou trucs que vous utiliser et qui rendent vos scripts plus élégants|performants|sophistiqués|..etc
---> les codes kung-fu sont aussi les biens venus
alors, je commence avec mon truc:
[code:1]# scriptBlock en guise de filtre
PS> $w=[scriptblock]::Create(\"`$_ -is [io.fileInfo]\"«»)
PS> dir | ? $w[/code:1]
Merci
Ce post est dédier pour le partage de vos techniques ou trucs que vous utiliser et qui rendent vos scripts plus élégants|performants|sophistiqués|..etc
---> les codes kung-fu sont aussi les biens venus
alors, je commence avec mon truc:
[code:1]# scriptBlock en guise de filtre
PS> $w=[scriptblock]::Create(\"`$_ -is [io.fileInfo]\"«»)
PS> dir | ? $w[/code:1]
Merci
Connexion ou Créer un compte pour participer à la conversation.
- Jacques Barathon
- Hors Ligne
- Administrateur
-
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 15 ans 1 mois #8610
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:vos meilleurs techniques et trucs PS
Hello,
C'est une bonne idée, ce sujet de discussion. Je le déplace juste dans le forum \"Contributions à la communauté\", plus approprié que le forum \"Entraide\" plutôt consacré aux problèmes rencontrés par nos membres.
Pour ma part, je propose de simplifier la syntaxe de ton astuce :
[code:1]
$w = {$_ -is [io.fileInfo]}
[/code:1]
Cette astuce m'a donné envie de créer le filtre inverse (ne retourner que les objets DirectoryInfo), mais au final j'ai choisi de créer un filtre générique qui fonctionne à l'inverse de where-object, c'est-à-dire qui ne retourne que les objets qui ne répondent pas au critère donné :
[code:1]
filter wherenot-object
{
param([ScriptBlock]$FilterScript)
process {
if (-not (iex $FilterScript.ToString())) {$_}
}
}
set-alias wherenot wherenot-object
set-alias ?! wherenot-object
dir | ?! $w
[/code:1]
Bon je sais, l'intérêt est sans doute limité, mais ça fait un exercice plutôt sympa pour démarrer la journée.
<br><br>Message édité par: janel, à: 28/01/11 10:17
C'est une bonne idée, ce sujet de discussion. Je le déplace juste dans le forum \"Contributions à la communauté\", plus approprié que le forum \"Entraide\" plutôt consacré aux problèmes rencontrés par nos membres.
Pour ma part, je propose de simplifier la syntaxe de ton astuce :
[code:1]
$w = {$_ -is [io.fileInfo]}
[/code:1]
Cette astuce m'a donné envie de créer le filtre inverse (ne retourner que les objets DirectoryInfo), mais au final j'ai choisi de créer un filtre générique qui fonctionne à l'inverse de where-object, c'est-à-dire qui ne retourne que les objets qui ne répondent pas au critère donné :
[code:1]
filter wherenot-object
{
param([ScriptBlock]$FilterScript)
process {
if (-not (iex $FilterScript.ToString())) {$_}
}
}
set-alias wherenot wherenot-object
set-alias ?! wherenot-object
dir | ?! $w
[/code:1]
Bon je sais, l'intérêt est sans doute limité, mais ça fait un exercice plutôt sympa pour démarrer la journée.
Connexion ou Créer un compte pour participer à la conversation.
- jojo
-
Auteur du sujet
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 187
- Remerciements reçus 0
il y a 15 ans 1 mois #8617
par jojo
Réponse de jojo sur le sujet Re:vos meilleurs techniques et trucs PS
[code:1]$w = {$_ -isnot [io.fileInfo]}
dir | ? $w[/code:1]
<br><br>Message édité par: jojo, à: 28/01/11 19:22
dir | ? $w[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 15 ans 1 mois #8621
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:vos meilleurs techniques et trucs PS
Salut,
trés bonne idée que ce post.
jojo écrit:
[code:1]
# filtrer les nombres impaires
1..5|? {$_ -band 1}
# NE PAS filtrer les nombres impaires
1..5|?! {$_ -band 1}
[/code:1]
On peut aussi noter dans le choix de l'alias une cohérence dans le nommage, l'alias de -Not étant !, celui de Where étant ?.
ça coule de source...
janel écrit:
De mon côté je vous propose ceci:
[code:1]
function Invoke-VSDebugger {[System.Diagnostics.Debugger]::Launch()}
New-Alias VSdbg Invoke-VSDebugger -Description \"S'attache au debugger actif (Visual studio)\"
[/code:1]
ça ne casse pas trois pattes à un canard, mais pour mettre au point une DLL C# utilisée par PS, c'est appréciable.
trés bonne idée que ce post.
jojo écrit:
Ton approche modifie le scriptblock (on modifie du code), Janel crée un opérateur (on enrichit le langage de PS) :
[code:1]
# filtrer les nombres impaires
1..5|? {$_ -band 1}
# NE PAS filtrer les nombres impaires
1..5|?! {$_ -band 1}
[/code:1]
On peut aussi noter dans le choix de l'alias une cohérence dans le nommage, l'alias de -Not étant !, celui de Where étant ?.
ça coule de source...
janel écrit:
C'est vrai que c'est limiteBon je sais, l'intérêt est sans doute limité,
De mon côté je vous propose ceci:
[code:1]
function Invoke-VSDebugger {[System.Diagnostics.Debugger]::Launch()}
New-Alias VSdbg Invoke-VSDebugger -Description \"S'attache au debugger actif (Visual studio)\"
[/code:1]
ça ne casse pas trois pattes à un canard, mais pour mettre au point une DLL C# utilisée par PS, c'est appréciable.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.039 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Contributions à la communauté
- vos meilleurs techniques et trucs PS