Question amélioration d'une fonction basique

Plus d'informations
il y a 15 ans 3 mois #8236 par Jacques Barathon

PS: j'ai lu autrefois qu'il vaut mieux mettre select-object avant sort-object pour des raisons de viteses d'executions..mais je ne sais pas trop..


Ca dépend de ce que tu veux faire.

Dans le cas où ton select ne fait que sélectionner certaines propriétés, en effet il est plus rapide de ne faire le tri que sur les propriétés sélectionnées plutôt que sur les objets complets.

Par contre, si tu veux sélectionner les n premiers ou les n derniers éléments d'une liste, ça n'a de sens que si tu es sûr de l'ordre de ta liste. Dans ce cas-là, tu as intérêt à trier tes éléments avant de lancer le select.

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

Plus d'informations
il y a 15 ans 3 mois #8237 par Jacques Barathon
Pour voir ce qui cloche dans la fonction sur ton poste, peux-tu réaliser les manips suivantes :

[code:1]
# exécuter la fonction en dot sourcing :

PS> . Get-MyFavoriteSportByJanel -newest 2

(...)

# vérifier la date d'un des articles :

PS> $date = $n.rss.channel.item[0].pubdate -as [datetime]
PS> $date

dimanche 5 décembre 2010 17:26:25

# calculer l'écart avec l'heure actuelle :

PS> ((get-date) - $date).totalhours
47,5895314650833
[/code:1]

Donne-nous tes résultats s'ils diffèrent sensiblement.

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

Plus d'informations
il y a 15 ans 3 mois #8238 par jojo
voici mes tests:
[code:1]
# pareseque je ne sais pas ce que veux dire: \" execution en dot sourcing\" j'ai essayé deux choses: 1- mettre la fonction dans un fichier .PS1 puis appeler la fonction

PS> . .\maFonction.ps1
PS> Get-MyFavoriteSportByJanel -newest 2

Age Titres FOOTBALL
---
-4075 h Football - Blog - Wenger : \"Benitez va durer\"
-4074 h Football - Ballon d'Or FIFA - Sneijder, l'Oranje amer




Age Titres HANDBALL
---
-4072 h Handball - Championnat d'Europe - Euro dames, mode d'emploi
-4059 h Handball - Champions League - Montpellier ? Ça va, ouf !




Age Titres NATATION
---
-4031 h Natation - Ch.France - Petit bassin - Gilot, roi du cent
-4006 h Natation - Ch.France - Petit bassin - Bousquet positive

# 2- ou bien appeler la fonction directement en la précedant d'un point !

PS> . Get-MyFavoriteSportByJanel -newest 2

Age Titres FOOTBALL
---
-4075 h Football - Blog - Wenger : \"Benitez va durer\"
-4074 h Football - Ballon d'Or FIFA - Sneijder, l'Oranje amer




Age Titres HANDBALL
---
-4072 h Handball - Championnat d'Europe - Euro dames, mode d'emploi
-4059 h Handball - Champions League - Montpellier ? Ça va, ouf !




Age Titres NATATION
---
-4031 h Natation - Ch.France - Petit bassin - Gilot, roi du cent
-4006 h Natation - Ch.France - Petit bassin - Bousquet positive

# vérifier la date d'un des articles :


PS D:\> $a=\"www.eurosport.fr/football/rss.xml\";
PS D:\> $n.Load($a)
PS D:\> $date = $n.rss.channel.item[0].pubdate -as [datetime]
PS D:\>$date

lundi 6 décembre 2010 21:35:12

# calculer l'écart avec l'heure actuelle :

PS D:\> ((get-date) - $date).totalhours

-4059,06204861111


[/code:1]

c'est bizzare ce: -4059,06204861111 :dry:

Message édité par: jojo, à: 7/12/10 18:34<br><br>Message édité par: jojo, à: 7/12/10 18:36

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

Plus d'informations
il y a 15 ans 3 mois #8242 par Jacques Barathon
Petite explication rapide sur le dot sourcing :

C'est une technique d'exécution d'un script ou d'une fonction qui permet de l'exécuter dans le contexte courant. On le fait en précédent le nom du script (ou de la fonction) d'un point et d'un espace.

Ca veut dire que les variables créées par le script (ou la fonction) continuent d'exister même après son exécution.

En l'occurrence, c'est comme ça que tu peux utiliser $n après l'appel à ta fonction, alors qu'en temps normal $n n'existe plus une fois la fonction exécutée.

Cela dit, ça n'explique pas ton problème...

Au cas où, tu as tapé un simple \&quot;get-date\&quot; pour voir si ton poste est à la bonne date ? :(

Et si au lieu de récupérer la propriété TotalHours, tu affiches le résultat complet de la soustraction entre (get-date) et $date, ça donne quoi ?

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

Plus d'informations
il y a 15 ans 3 mois #8243 par jojo
Bonjour janel,

j'étais juste en train de rediger mon message :P
je crois que le problème est régler: c'était juste un décalage horaire dans mon PC que je vais règler.

[code:1]PS C:\&gt; get-date;echo oooops !!
lundi 21 juin 2010 09:56:17
oooops !![/code:1]

j'ai pas pu resister :silly:

[code:1]
PS D:\&gt; function get-CurrentTime {
&gt;&gt; param([string]$ville=\&quot;rome\&quot;«»)
&gt;&gt; $url = \&quot;24timezones.com/world_directory/\";
&gt;&gt; cmd /c start \&quot;\&quot; \&quot;${url}time_in_${ville}.php\&quot;
&gt;&gt; }
&gt;&gt;
PS D:\&gt; get-CurrentTime -ville paris
[/code:1]


merci janel de tout :laugh:<br><br>Message édité par: jojo, à: 8/12/10 10:28

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

Plus d'informations
il y a 15 ans 3 mois #8244 par Jacques Barathon
Elle est sympa ta nouvelle fonction. A part qu'un \&quot;cmd /c\&quot; c'est déjà pas sympa, mais en plus tu te contentes d'afficher la page web avec l'heure, alors que tu pourrais à peu de frais lire la page et renvoyer l'info directement dans PowerShell !

[code:1]
# Get-CurrentTime.ps1

param ([String]$city = \&quot;paris\&quot;«»)

$url = \&quot;24timezones.com/world_directory/time_in_{0}.php\"; -f $city.ToLower()

$ie=new-object -com internetexplorer.application
$ie.navigate($url)
do {} until ($ie.ReadyState -eq 4)

$time = ($ie.document.body.getElementsByTagName('span') | where {$_.id -eq 'currentTime'}).innerHTML
$time -as [DateTime]
[/code:1]

Ca donne :

[code:1]
PS&gt; get-currenttime London

mercredi 8 décembre 2010 11:22:29

PS&gt; ([datetime]::now - (get-currenttime new_york)).hours
6
[/code:1]

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

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