Question Export-Csv et Where-Object

Plus d'informations
il y a 4 ans 2 mois #23872 par Faucon
Export-Csv et Where-Object a été créé par Faucon
Bonjour,

Je me permet de revenir vers vous car j'ai un script qui me pose problème depuis plusieurs jours.

Je vais d'abord vous donner le contexte :

Je dois écrire un script PowerShell qui liste des informations concernant mes jobs Control-M, notamment l'ORDERID qui est une information propre à chaque job, cette liste doit me permettre de les filtrer en fonction de leur ODATE pour pouvoir les supprimer c'est la ou ça se gâte :p.

Voici ma commande :

[code:1]$OrderIDjobsAsupprimer = ctmpsm -listall ALLFIELDS_FULL | where-object {$_.ODATE -lt \"YYYYMMDD\"}[/code:1]

Il ne me fait pas le filtre. Il me liste tous mes jobs même ceux dont la date est supérieur à mon ODATE.

Je me suis donc décidé à passer par un fichier csv sauf qu'il ne me sort que \"LENGHT\" comme paramètre. Après plusieurs recherche sur internet j'ai trouvé pourquoi et je le comprends (même si je trouve ça c*****n), j'ai lu plusieurs solution que j'ai essayé de mettre en oeuvre mais ça ne fonctionne pas chez moi et je ne les comprends pas vraiment ^_^.

Je dois donc vous avouer que votre aide serait la bienvenue surtout sur le where-object que j'utilise déjà de cette manière dans plusieurs scripts qui sont en Prod.

Merci d'avance,

Mitakue

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

Plus d'informations
il y a 4 ans 2 mois #23879 par Laurent Dardenne
Salut,
avant tout il faut connaitre le type de l'objet que tu récupères, à priori du type string (pb du .csv).

Ensuite il faut convertir les données en objet ou extraire uniquement l'info à convertir en Datetime.

Tutoriels PowerShell

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

Plus d'informations
il y a 4 ans 2 mois #23884 par Faucon
Réponse de Faucon sur le sujet Re:Export-Csv et Where-Object
Hello,

En PJ un extract de ce que je souhaite récupérer. C'est un csv mais je n'ai pas utilisé export-csv :p.

Les infos dont j'ai besoin sont l'ORDERID, le JOBNAME et l'ODATE.

[code:1]ORDERID JOBNAME TYPE ODATE STATE STATUS FILENAME APPLICATION SUBAPPLICATION








0000a0y5 ACCDATA-ImportGSM_Orga_TST FLD 20170702 Post pro OK TST Orga_TST
0000a2ij ACCDATA-ImportGSM_Orga_TST FLD 20170703 Executin OK TST Orga_TST
0000a460 ACCDATA-ImportGSM_Orga_TST FLD 20170704 Executin OK TST Orga_TST
0000a2qk ACCDATA-Loading-Risk_Reporting_TST FLD 20170704 Executin OK TST Reporting_TST
0000a11g ACCDATA-Loading-Risk_Reporting_TST FLD 20170703 Executin OK TST Reporting_TST
00009zmf ACCDATA-Loading-Risk_Reporting_TST FLD 20170702 Post pro OK TST Reporting_TST
00009zmj ACCDATA-Loading-Statpro_Reporting_TST FLD 20170702 Executin OK TST Reporting_TST
00009zcy ACCDATA-Loading-Statpro_Reporting_TST FLD 20170701 Executin OK TST Reporting_TST
0000a11k ACCDATA-Loading-Statpro_Reporting_TST FLD 20170703 Executin OK TST Reporting_TST
0000a2qo ACCDATA-Loading-Statpro_Reporting_TST FLD 20170704 Executin OK TST [/code:1]

Merci d'avance,

Mitakue<br><br>Message édité par: Mitakue, à: 5/07/17 11:36

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

Plus d'informations
il y a 4 ans 2 mois #23887 par Marc
Réponse de Marc sur le sujet Re:Export-Csv et Where-Object
Ben en effet comme le dit Laurent, ODATE n'est pas exploitable en l'état.
Il faut d'abord passer ton object dans une moulinette pour convertir ODATE de type String en type DateTime.

Une ébauche brut force à intégrer dans une fonction.
[code:1]
$ODATE = \&quot;20170703\&quot;
$year = $date.Substring(0,4)
$month = $date.Substring(4,2)
$day = $date.Substring(6,2)
[datetime]$ODATE = Get-Date \&quot;$day/$month/$year\&quot;

PS C:\&gt; $ODATE
lundi 3 juillet 2017 00:00:00
[/code:1]<br><br>Message édité par: marcci, à: 5/07/17 14:29

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

Plus d'informations
il y a 4 ans 2 mois #23890 par Laurent Dardenne
Mitakue écrit:

En PJ un extract de ce que je souhaite récupérer. C'est un csv mais je n'ai pas utilisé export-csv

A moins que le fichier récupéré insére une ligne d'info sur plusieurs lignes de texte(ce qui ne facilite pas la tâche), peux-tu joindre un fichier texte correctement formaté ?

Marcci on peut aussi utiliser ceci :
[code:1]
[datetime]::«»ParseExact($odate,'yyyyMMdd',$null)
[/code:1]

Tutoriels PowerShell

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

Plus d'informations
il y a 4 ans 2 mois #23894 par Marc
Réponse de Marc sur le sujet Re:Export-Csv et Where-Object

Marcci on peut aussi utiliser ceci :

Voila qui est nettement plus élégant :)

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

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