Question Powershell parser

Plus d'informations
il y a 11 ans 9 mois #17553 par Albert
Powershell parser a été créé par Albert
Salut,

J'essaye de récupérer une informations d'un fichier qui n'est pas vraiment structurer, je m'explique :

ANS1891W SUBDIR is not a valid option when using FILELIST, SUBDIR will be ignored.
IBM Tivoli Storage Manager
Command Line Backup-Archive Client Interface
Client Version 6, Release 2, Level 5.0
Client date/time: 05/27/2014 16:03:45
(c) Copyright by IBM Corporation and other(s) 1990, 2013. All Rights Reserved.

Node Name: X
Session established with server X: AIX-RS/6000
Server Version 5, Release 5, Level 4.2
Server date/time: 05/27/2014 16:03:45 Last access: 05/27/2014 16:01:55

Size Backup Date Mgmt Class A/I File
----



--- ----
2,048 B 05/26/2014 22:31:19 MC_DATA A \\X\d$\database\hc_X.dat
1,536 B 05/26/2014 22:31:19 MC_DATA A \\X\d$\database\PWDX.ora
14,848 B 05/26/2014 22:31:19 MC_DATA A \\Xd$\SPFILEX.ORA


En gros je veux récupérer la \"Backup Date\" pour la comparer par la suite.

Il me semble que par chance les 14 premières lignes semblent être toujours les même. C'est un output d'une commande que j'envoie dans un fichier avec out-file.

Une idée ?

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

Plus d'informations
il y a 11 ans 9 mois #17554 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Powershell parser
Salut,
FlqX écrit:

Une idée ?

Oui, mais en mode compressé :
[code:1]
$File='C:\temp\datas.txt'

$I=0;
foreach ($line in Gc $File) {
$I++
Write-debug \"I=$i`t $Line\"
if ($I -gt 14)
{
[datetime]::«»ParseExact(\"$(($Line -split ' ')[2,3])\",\"MM/dd/yyyy HH:mm:«»ss\",$null)
}
}

[/code:1]
Suppose que tous les champs sont séparés par un seul caractère espace.<br><br>Message édité par: Laurent Dardenne, à: 30/05/14 17:33

Tutoriels PowerShell

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

Plus d'informations
il y a 11 ans 9 mois #17596 par Albert
Réponse de Albert sur le sujet Re:Powershell parser
Merci beaucoup, finalement j'ai changé mon fusil d'épaul et je n'ai plus besoin de la date. Par contre dans ma nouvelle façon de fonctionner j'obtins des erreurs que j'ai du mal à passer

Select-String : parsing \&quot;\\hostname\d$\DATABASE\LALA\REDO02.LOG\&quot; - Unrecognized escape sequence \L


Ce que je comprends c'est qu'il bloque au niveau du L de \&quot;LALA\&quot; certainement à cause du caractère $ je suppose.

Ce que j'essaye de faire enfaite c'est chercher dans un fichier un string contenu dans un autre, j'ai un fichier 1 :

\\hostname\d$\DATABASE\LALA\data1.ORA
\\hostname\d$\DATABASE\LALA\data2.ORA
\\hostname\d$\DATABASE\LALA\data3.ORA


et mon output est toujours :

ANS1891W SUBDIR is not a valid option when using FILELIST, SUBDIR will be ignored.
IBM Tivoli Storage Manager
Command Line Backup-Archive Client Interface
Client Version 6, Release 2, Level 5.0
Client date/time: 05/27/2014 16:03:45
(c) Copyright by IBM Corporation and other(s) 1990, 2013. All Rights Reserved.


Node Name: X
Session established with server X: AIX-RS/6000
Server Version 5, Release 5, Level 4.2
Server date/time: 05/27/2014 16:03:45 Last access: 05/27/2014 16:01:55


Size Backup Date Mgmt Class A/I File
----



--- ----
2,048 B 05/26/2014 22:31:19 MC_DATA A \\hostname\d$\DATABASE\LALA\data1.ORA
1,536 B 05/26/2014 22:31:19 MC_DATA A \\hostname\d$\DATABASE\LALA\data2.ORA
14,848 B 05/26/2014 22:31:19 MC_DATA A \\hostname\d$\DATABASE\LALA\data3.ORA


J'essaye donc de voir si toutes les lignes de fichier 1 sont dans fichier 2 :

[code:1]foreach ($line in get-content $fichier1){
if(Select-string -pattern $line -path $fichier2){$result+=\&quot;ok\&quot;}
else{$result+=\&quot;nok\&quot;}}
echo \&quot;Resultat $result\&quot;[/code:1]

Comment puis-je empecher l'interprétation du $ si c'est cela qui pose problème ?

PS le forum me vire des backslash parcontre ..<br><br>Message édité par: FlqX, à: 6/06/14 15:33

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

Plus d'informations
il y a 11 ans 9 mois #17604 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Powershell parser
FlqX écrit:

Comment puis-je empecher l'interprétation du $ si c'est cela qui pose problème ?

Tu passes chaque ligne à un paramètre qui attend une expression régulière, il faut revoir ton code.<br><br>Message édité par: Laurent Dardenne, à: 9/06/14 17:10

Tutoriels PowerShell

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

Plus d'informations
il y a 11 ans 9 mois #17607 par Albert
Réponse de Albert sur le sujet Re:Powershell parser
Ok merci beaucoup.

J'ai testé avec -SimpleMatch qui permet de forcer un string en pattern et ça semble fonctionner, je vais pouvoir avancer avec ça.

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

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