Question Aide pour de l'optimisation

Plus d'informations
il y a 8 ans 8 mois #23973 par Marc
Réponse de Marc sur le sujet Re:Aide pour de l'optimisation
[code:1]
#Ajout de la propriété FileVersionUpdated pour System.IO.FileInfo ( get-item , get-childitem disposeront de cette nouvelle propriétée)
#VersionInfo.FileVersion est buggée de base
Update-TypeData -Force -TypeName System.IO.FileInfo -MemberName FileVersionUpdated -MemberType ScriptProperty -Value {
[System.Diagnostics.FileVersionInfo]::GetVersionInfo($this.FullName) | % {
[Version](($_.FileMajorPart, $_.FileMinorPart, $_.FileBuildPart, $_.FilePrivatePart)-join\".\"«»)
}
}
Get-ChildItem -recurse ($Path) -include ($Filter) -File -OutBuffer 1000 -ErrorAction SilentlyContinue | Select-Object Fullname , Name , DirectoryName , Length , CreationTime , LastWriteTime , FileVersionUpdated
[/code:1]

C'est dit en commentaire :P

Et comme toujours un peut de lecture :lol:

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

Plus d'informations
il y a 8 ans 8 mois #23974 par Philippe
Réponse de Philippe sur le sujet Re:Aide pour de l'optimisation

je ne comprend vraiment pas cette partie, cette variables $gciblock

pour la variable $gciblock elle contient un bout de script entre accolade qui serra exécuté par la commande start-job plus long dans le script

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

Plus d'informations
il y a 8 ans 8 mois #23976 par Laurent Dardenne
Salut,
Valeze écrit:

Je n'ai quasiment jamais fait de script avant, alors commencer directement par de \"l'optimisation\" ça fait un choc xD

Tu m'étonnes !
Quel langage de programmation connais-tu ?

Update-TypeData permet de créer un membre personnalisé pour UN type là où Add-member le fait pour une instance (un objet).
Tu peux faire la même chose avec un fichier .ps1xml.

$GciBloc est un Scriptblock, du code qui n'est pas nommé comme peut l'être une fonction, un script ou un module.
Par exemple les cmdlet xx-Object les utilisent pour paramétrer leur traitement.

Tu peux regarder l'outil PSScriptAnalyzer qui te donneras qq infos sur la qualité du code et chose à ne pas faire.

Ensuite l'idéal eut été de créer des test de non régression avec Pester.

Et vue de ma fenêtre tu devrais déjà comprendre comment PS fonctionne avant de chercher à optimiser.

De plus tu as un base de données, qui peut aussi être concernée par les temps de réponse (index adéquates ? ).

Enfin quel pb à ce code pour devoir l'optimiser ?

Tutoriels PowerShell

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

Plus d'informations
il y a 8 ans 8 mois #23981 par Betrancourt
Réponse de Betrancourt sur le sujet Re:Aide pour de l'optimisation
Merci pour vos réponse :) j'en ai un peu parlé avec mon tuteur hier après-midi, il m'a expliqué que ce code avait été fait par un ancien stagiaire a lui en 2ème années BTS réseau qui n'avait jamais fait de Powershell (j'ai aussi trouvé ca bizarre, Powershell c'est la base !)

Avec la journée d'hier et vos explication, j'ai pu bien comprendre le fonctionnement général du code, du coup petites idées ! je vais lui déplacer les \"Excludes\" dans le XML, comme ça il pourra compléter plus facilement, pour passer de ça :

[code:1] [System.Collections.ArrayList]$Folders = get-childitem -Directory C: | Select-Object FullName | ForEach-Object { $_.Fullname = $_.Fullname.trim() ; return $_}
$FoldersToExclude = @(\"C:\`$RECYCLE.BIN\",\"C:\Intel\",\"C:\IT\",\"C:\MSOCache\",\"C:\ProgramData\",\"C:\Quarantine\",\"C:\temp\",\"C:\Users\",\"C:\Windows\"«»)
foreach ($FolderToExclude in $FoldersToExclude) {
foreach($Folder in $Folders) {
if ($Folder.FullName -eq $FolderToExclude) {
$Folders.Remove($Folder)
break
}
}
} [/code:1]

à une structure plus comme ca : [code:1]$FoldersToExclude = get-xml -ConfigFilePath \"C:\Users\Y0598843\Desktop\Powershell Test\Stage\StageFranckParrinello\projet.xml\"
foreach ($FolderToExclude in $FoldersToExclude.FoldersToExclude.FoldertoExclude) {
foreach($Folder in $Folders) {
if ($Folder.FullName -eq $FolderToExclude) {
$Folders.Remove($Folder)
break
}
}
} [/code:1]

et du coup changer le XML avec des liens comme ceci par ex [code:1] <foldersToExclude>

<FolderToExclude id=\"Win\">
<path> c:\Windows </path>
</FolderToExclude>





</FoldersToExclude>
[/code:1]

Après voila, la structure et la syntaxe c'est pas encore ca :S mais l'idée et la

Je connais pas mal une grande parties des langages liées aux dev web (PHP, Sql, Js...) le plus simple ^^ un peu de Java aussi, du coup pour le powershell c'est facilement rentré x)<br><br>Message édité par: Valeze, à: 20/07/17 09:10

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

Plus d'informations
il y a 8 ans 8 mois #23982 par Laurent Dardenne
Valeze écrit:

Je connais pas mal une grande parties des langages liées aux dev web (PHP, Sql, Js...) le plus simple ^^ un peu de Java aussi, du coup pour le powershell c'est facilement rentré x)


Le langage est simple, peu d'instructions, par contre les comportements de base (scope, pipeline, binding de paramètre, etc) et certaines syntaxe nécessitent plus de temps d'apprentissage.

Dans le code soumis, il y a peu à optimiser il me semble mais certains points à améliorer, gestion d'erreur, usage de try/finally sur la connexion par exemple.

Une règle de nommage sur les jobs serait préférable et le mécanisme de logs à revoir.

Tutoriels PowerShell

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

Plus d'informations
il y a 8 ans 8 mois #23983 par Betrancourt
Réponse de Betrancourt sur le sujet Re:Aide pour de l'optimisation


Dans le code soumis, il y a peu à optimiser il me semble mais certains points à améliorer, gestion d'erreur, usage de try/finally sur la connexion par exemple.

Une règle de nommage sur les jobs serait préférable et le mécanisme de logs à revoir.


un tuto ou je pourrais voir ca ? :S

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

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