Question es-ce que vous êtes satisfait de la V3

Plus d'informations
il y a 11 ans 6 mois #12862 par jojo
hello :laugh:

tout est dans le titre....es-ce que le team de PS a \"oublier\" d'ajouter à PS3 une chose que vous juger importante ?

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

Plus d'informations
il y a 11 ans 6 mois #12865 par Laurent Dardenne
jojo écrit:

es-ce que le team de PS a \"oublier\" d'ajouter à PS3 une chose que vous juger importante ?

De la doc, de la doc et du temps pour étudier la doc.

Sinon, des directives de 'parsing conditionnel' :

#ifdef Version 3.0
(Get-Process).Close()
#else
Get-Process|Foreach {$_.Close()}
#endif

#ifdef Debug
Write-info debug
Write-debug xx
Send-debugger $Object
#endif
...suite du code de production


#ifdef x86
...

#ifdef Windows_2008r2
...

Je pense que je vais proposer ce souhait d'évolution à l'équipe pour la prochaine version.
On peut déjà faire une fonction qui filtre sur un couple de tag avec des regex , mais il faut du temps pour la coder...

Et aussi un éditeur/cmdlets pour générer des fichiers MAML (fichier d'aide au format XML).

Tutoriels PowerShell

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

Plus d'informations
il y a 11 ans 6 mois #12867 par jojo
hello Laurent :laugh:

Laurent Dardenne écrit:

Sinon, des directives de 'parsing conditionnel' :
#ifdef Version 3.0
(Get-Process).Close()
#else
Get-Process|Foreach {$_.Close()}
#endif

#ifdef Debug
Write-info debug
Write-debug xx
Send-debugger $Object
#endif
...suite du code de production


#ifdef x86
...

#ifdef Windows_2008r2
...


c'est bien, ça ressemble aux instructions IE, et c'est plus flexible que la directive #requires


Laurent Dardenne écrit:

des regex


j'espère que le team PS ajoutera à l'arsenal un objet personnaliser contenant des Regex's pour faciliter le parsing et avoir des pattern prêt pourr l'utilisation, pourquoi réinventer la roue , on porra l'utiliser ainsi:
[code:1]
$mail -match $Regex.email
$url -match $Regex.uri
[/code:1]

et tant qu'on parle des Regex es-ce que en V3 l'opérateur -match a un alias -m
?

Laurent Dardenne écrit:

Et aussi un éditeur/cmdlets pour générer des fichiers MAML (fichier d'aide au format XML).


ça c'est génial, le mieux est de créer un nouveau volée spécialiser dans l'edition des fichiers MAML avec coloration syntaxique, intelisense..etc et l'intégrer à ISE

Message édité par: jojo, à: 6/10/12 21:24

Message édité par: jojo, à: 6/10/12 21:27<br><br>Message édité par: jojo, à: 6/10/12 21:29

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

Plus d'informations
il y a 11 ans 6 mois #12868 par Laurent Dardenne
jojo écrit:

j'espère que le team PS ajoutera à l'arsenal un objet personnaliser contenant des Regex's, on porra l'utiliser ainsi:

Tu peux déjà le faire, ce n'est qu'une question de structure de données, cf. projet PSCX.
jojo écrit:

et tant qu'on parle des Regex es-ce que en V3 l'opérateur -match a un alias -m
?

Non. Et ce n'est pas plus mal !

jojo écrit:

et l'intégrer à ISE

Dans la v3, il est possible d'ajouter des Add-On codés en C#.

Sur le sujet du parsing conditionnel, une fonction à la v1, qui sert juste à retirer des lignes, pas d'imbrication de directives, etc... :
[code:1]
#&lt;IFDEF %V3%&gt;
#requires -Module PSDiagnostics
#&lt;IFDEF %V3%&gt;
#Remove-Conditionnal.ps1
Filter Remove-Conditionnal {
param ([String]$ConditionnalsKeyWord)

function Parse([String] $FileName,[String]$ConditionnalsKeyWord)
{ #renvoi toutes les lignes sauf celles du bloc de la 'directive'
$isDirectiveBloc=$False
Get-Content -Path $FileName|
Foreach-Object {
switch -regex ($_)
{
\&quot;^#&lt;\s*IFDEF %${ConditionnalsKeyWord}%&gt;\&quot; {$isDirectiveBloc=$True;continue}
\&quot;^#&lt;\s*ENDIF %${ConditionnalsKeyWord}%&gt;\&quot; {$isDirectiveBloc=$False;Continue}
default {
if ($isDirectiveBloc -eq $false)
#On traite les lignes qui ne se trouvent pas dans le bloc de la 'directive'
{$_}
}#default
}#Switch
}#Foreach
}#Parse

if ($_ )
{
#Récupére un nom de fichier créé par l'OS
$TempFile = [IO.Path]::GetTempFileName()
$FullPath=Resolve-Path \&quot;$_\&quot;
#&lt;IFDEF %DEBUG%&gt;
Write-Debug \&quot;$TempFile\&quot;
Write-Debug \&quot;$FullPath\&quot;
#&lt;ENDIF %DEBUG%&gt;

#Extrait toutes les lignes, sauf celles contenues dans un bloc de directive', dans un fichier temporaire
Parse \&quot;$FullPath\&quot; $ConditionnalsKeyWord|Set-Content \&quot;$TempFile\&quot;

#Ecrase le fichier d'origine à partir du fichier temporaire
#$FileInfo.Replace ne fonctionne pas car %Temp%
#peut être sur un disque différent de celui de la source :/
Get-Content \&quot;$TempFile\&quot;|Set-Content \&quot;$FullPath\&quot;
Del \&quot;$TempFile\&quot;
#&lt;IFDEF %DEBUG%&gt;
Write-Debug \&quot;Fin\&quot;
#&lt;ENDIF %DEBUG%&gt;
}
else {Write-Error \&quot;[Remove-Conditionnal] Ce filtre a reçu une donnée `$null du pipeline.\&quot;}
} #Remove-Conditionnal

#&lt;IFDEF %TEST%&gt;
Set-Location C:\Temp
md Test
Copy-Item \&quot;Remove-Conditionnal.ps1\&quot; C:\Temp\Test
Set-Location C:\Temp\Test
\&quot;Remove-Conditionnal.ps1\&quot;|Remove-Conditionnal \&quot;DEBUG\&quot;
\&quot;Remove-Conditionnal.ps1\&quot;|Remove-Conditionnal \&quot;TEST\&quot;
#&lt;ENDIF %TEST%&gt;
[/code:1]
ça ne casse pas trois pattes à un canard, mais peut aider :)

Tutoriels PowerShell

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

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