Question vos meilleurs techniques et trucs PS

Plus d'informations
il y a 15 ans 1 mois #8605 par jojo
Bonsoir les PowerShelleurs :laugh:

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 :laugh:

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

Plus d'informations
il y a 15 ans 1 mois #8610 par Jacques Barathon
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

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

Plus d'informations
il y a 15 ans 1 mois #8617 par jojo
[code:1]$w = {$_ -isnot [io.fileInfo]}
dir | ? $w[/code:1]

:P<br><br>Message édité par: jojo, à: 28/01/11 19:22

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

Plus d'informations
il y a 15 ans 1 mois #8621 par Laurent Dardenne
Salut,
trés bonne idée que ce post.
jojo écrit:

:P

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:

Bon je sais, l'intérêt est sans doute limité,

C'est vrai que c'est limite :lol:

De mon côté je vous propose ceci:
[code:1]
function Invoke-VSDebugger {[System.Diagnostics.Debugger]::Launch()}
New-Alias VSdbg Invoke-VSDebugger -Description \&quot;S'attache au debugger actif (Visual studio)\&quot;
[/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
Propulsé par Kunena