Question Powershell parser
- Albert
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 38
- Remerciements reçus 0
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
FlqX écrit:
Oui, mais en mode compressé :Une idée ?
[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.
- Albert
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 38
- Remerciements reçus 0
Select-String : parsing \"\\hostname\d$\DATABASE\LALA\REDO02.LOG\" - Unrecognized escape sequence \L
Ce que je comprends c'est qu'il bloque au niveau du L de \"LALA\" 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+=\"ok\"}
else{$result+=\"nok\"}}
echo \"Resultat $result\"[/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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
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:10Comment puis-je empecher l'interprétation du $ si c'est cela qui pose problème ?
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Albert
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 38
- Remerciements reçus 0
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.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les initiés
- Powershell parser