Closed LaurentDardenne closed 10 months ago
Un effet de bord je pense :
$r=Find-FLowChartNodes -Path $Script
#Find-FLowChartNodes: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
ok je vois ce que tu veux dire .. je suis entrain de me renseigner ... en 10 ans je crois que j'ai jamais écrit une fonction qui gérait correctement les path xD
en 10 ans je crois que j'ai jamais écrit une fonction qui gérait correctement les path xD
Oui c'est LE truc compliqué sous PS. Tout ça pour répondre à une simple question : Le nom de chemin est-il un nom valide pour le FileSystem? Le plus simple est de laisser l'utilisateur gérer sa saisie ;-)
j avais du mal a trouver un truc assez "clair" pour mon level ... mais je crois que j'ai trouvé mon bonheur avec get-filehash https://github.com/PowerShell/PowerShell/blob/3c1261f90db028b7ab2210fbb75ac40e8ff449cf/src/Microsoft.PowerShell.Commands.Utility/commands/utility/GetHash.cs
j'essaierai de faire comme ça .. ! ça semble le plus réaliste pour moi :)
ça semble le plus réaliste pour moi :)
Tu m'étonnes ! Le code cité était une étude de cas qui s'est transformé en un casse tête chinois... Sinon ce premier projet communautaire sous PS avait bien cerné le sujet il me semble. Faudrait que je retrouve les parties réutilisable...
Ci-joint les path que l'on peut rencontrer en entrée : TestPathDatas.zip
Ici c'est juste de la lecture c'est déjà plus facile.
ok j'ai résolu le problème normalement .. j essaye de mettre ça au propre bientot et de pousser avec le renommage de cmdlets :)
Du coup on peut faire -path
ou -literalpath
, le pipeline semble toujours correctement fonctionner ... ! et on ne peut pas spécifier les 2 en même temps
bon j'ai pompé comme un gros sale le code de get-filehash ... :)
edit: et du coup plus les bugs du haut !
et on ne peut pas spécifier les 2 en même temps
Ok :-) En passant la classe de PSCX qui gère les path.
je récouvre car j'ai des problème des binding la ... genre get-flowchartnodes .\build.ps1
... bah ça fonctionne pas.. donc je cherche !
en revanche du coup je me demande si je ne devrait pas ajotuer une propriété path, sur les objets node, quand ça vient d'un fichier ...
ok normalement c bon C mergé du coup la cmdlet c'est maintenant Get-FlowChartNode
en revanche du coup je me demande si je ne devrait pas ajouter une propriété path, sur les objets node, quand ça vient d'un fichier ...
On avait vu ceci :
Get-ChildItem -Path C\temp\*.ps1 -PipelineVariable FileName|
New-FLowChartNodes|
New-FLowChartGraph|
Foreach-Object {
$_
"${FileName}.graph"
}
Laisse l'utilisateur s'en charger, faut jsute le préciser dans la doc, ou le readme
ok normalement c bon
Presque ;-)
cd C:\Temp
'test' |set-content -LiteralPath 'c:\temp\test[1].ps1'
Get-FLowChartNode -LiteralPath 'c:\temp\test`[1`].ps1'
Get-FLowChartNode -Path 'c:\temp\test`[1`].ps1'
Get-FLowChartNode -LiteralPath 'c:\temp\test`[1`].ps1'
Get-FLowChartNode -Path 'c:\temp\test[1].ps1'
#Get-FLowChartNode: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
Get-FLowChartNode -LiteralPath 'c:\temp\test[1].ps1'
#Get-FLowChartNode: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
($ExecutionContext.SessionState.Path.GetResolvedProviderPathFromPSPath('.\test[1].ps1',$provider)[0]) -eq $null
#true
arf j'ai du mal copié un truc ^^
Hello @LaurentDardenne , sorry j'ai fait une pause, pas toucher à mon VSCODE depuis 1 mois .. :)
je me disais que literalpath
n'était peut-être pas nécessaire :
If your cmdlet allows the user to specify a file or a data source, it should define a parameter of type System.String. If more than one drive is supported, the type should be an array. The name of the parameter should be Path, with an alias of PSPath. Additionally, the Path parameter should support wildcard characters. If support for wildcard characters is not required, define a LiteralPath parameter.
effectivement les wildcards peuvent nous interesser, donc voila .. ! what do you think ?
Salut,
j'ai fait une pause, pas toucher à mon VSCODE depuis 1 mois .. :)
Faut pas l'user ;-) De mon côté c'était l'inverse j'en faisais trop en entreprise.
je me disais que
literalpath
n'était peut-être pas nécessaire : effectivement les wildcards peuvent nous intéresser, donc voila .. ! what do you think ?
Ce que j'en pense, je ne suis pas sur de bien comprendre le texte: Additionally, the Path parameter should support wildcard characters. If support for wildcard characters is not required, define a LiteralPath parameter. Selon ce texte ce serait soit l'un soit l'autre. Là où tous les cmdlets natif gère l'un ET l'autre. ça m'embrouille plutôt qu'autre chose :-/
oué pareillement ! bon je vais esayer juste avec PATH et voir si j'arrive à gérer le maximum de cas ... on verra bien !
Hello @LaurentDardenne :) sorry ... ça faisait longtemps ... ah j'ai eu une petite perte de motiviation !
ayé j'ai bien recopié le code source de get-filehash
, :p et normalement ça devrait être bon ...
Evidemment en 2 mois j'ai tout oublié, du coup j'ai poussé direct sur la branche master -_- !
Salut
Évidemment en 2 mois j'ai tout oublié
La même...
du coup j'ai poussé direct sur la branche master -_- !
GG ;-) Ce que des hommes on fait, d'autres peuvent le défaire.
Repro :