Question doublons

Plus d'informations
il y a 12 ans 2 semaines #17118 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:doublons
Wagga écrit:

(Get-content sur le fichier de sortie Telnet).

Si tu as le temps, vérifie l'encodage de ce fichier avec Notepad.
Sinon il existe cette entrée sur MSConnect

Tutoriels PowerShell

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

Plus d'informations
il y a 12 ans 2 semaines #17121 par Damien GRECOURT
Réponse de Damien GRECOURT sur le sujet Re:doublons
Notepad indique ANSI.

Je n'ai pas précisé, mais c'est mon script qui réalise les connexions telnet.
A cet effet, j'ai écris une méthode pour lire le flux :
[code:1]## Lecteur de flux (connexion TCP/IP).
function read-stream{
param(
[Parameter(Position=0,Mandatory=$true)][validatenotnull()]
[System.Net.Sockets.NetworkStream]$stream
)
if($stream.CanRead){
$bufferSize = 4096
$buffer = new-object system.byte[] $bufferSize
$encoding = new-object system.text.asciiEncoding
$stringBuilder = new-object system.text.StringBuilder
## Read all the data available from the stream, writing it to the
## screen when done.
## Allow data to buffer - OPTIONNAL
#start-sleep -m 100
$output = \"\"
while($stream.DataAvailable){
#$read = $stream.Read($buffer, 0, $bufferSize)
$read = $stream.Read($buffer, 0, 1024)
$output = $stringBuilder.Append($encoding.GetString($buffer, 0, $read))
#$output = \"$output$($enc.GetString($buffer, 0, $read))\"
if($debug -eq 1){write-host -n $output}
## Allow data to buffer for a bit - OPTIONNAL
start-sleep -m 100
}
$output
}
}[/code:1]
Cette méthode encode ma sortie Telnet en ASCII.

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

Plus d'informations
il y a 12 ans 2 semaines #17122 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:doublons
Wagga écrit:

Notepad indique ANSI.

Dans ce cas, je te conseille de construire une chaîne de production utilisant le même encodage.

C'est ce que nous avons mis en place sur ce projet , bien que ce ne soit pas le même contexte, nous sommes assuré de manipuler des fichiers ayant un seul encodage.

Est-ce pour autant que ton pb vienne de là, ça je ne le sais pas.

Tutoriels PowerShell

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

Plus d'informations
il y a 12 ans 2 semaines #17123 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:doublons
Un oubli : le code utilisé est dispo ici :
DTW.PS.FileSystem

Tutoriels PowerShell

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

Plus d'informations
il y a 12 ans 2 semaines #17127 par Damien GRECOURT
Réponse de Damien GRECOURT sur le sujet Re:doublons
Bonjour Laurent,

J'ai testé l'encodage d'un de mes fichiers de sortie Telnet avec le module indiqué et le résultat est le suivant :
[code:1]PS C:\Users\xxxx> C:\Users\xxxx\Downloads\DTW.PS.FileSystem\Test-BOMFile D:\xxxx\NetWorkData\Logs\04594\Logs\107_output_telnet_05032014.txt

FileName Encoding BomFound Endian



D:\xxxx\NetWorkData\Logs\04594\Logs\107_... ASCIIEncoding False [/code:1]
En regardant à nouveau le code qui pousse les commandes Telnet sur les équipements, je vois que j'avais à nouveau forcé l'encodage du fichier en ASCII.
[code:1]$Line | out-file $DeviceOutput -encoding ASCII -append[/code:1]
Chose faite juste après avoir lu le flux et séparé les lignes pour traiter le flux ligne par ligne.
[code:1]$Reader = \"$(read-stream($str))\".Split(\"`n\"«»)[/code:1]

Donc, le flux est encodé en ASCII dès sa récupération.
Il est séparé en ligne puis redirigé vers un fichier de sortie qui est lui même encodé en ASCII.:huh:

Dans ce cas, je te conseille de construire une chaîne de production utilisant le même encodage.

Ok, pourquoi pas, je m'y prends comment ?
Toute la partie Telnet est encodée en ASCII.
Ensuite, pour faire l'analyse des fichiers de sortie ils sont chargés avec Get-content
[code:1]$FileContent = get-content \"$rootLogs\$($Line.IpAddress.Split('.')[3])_output_telnet_$($FicDate).txt\"[/code:1]
On stocke les informations dans des variables puis on met tout sous forme de tableau de hashtable comme indiqué dans le premier post (les informations sont propres (trim()), reformatées si besoin).

Je vois vraiment pas ou j'ai fauté pour que Get-unique me renvoi 2 fois la même ligne. Et le pire je dirais, c'est que la ligne est en 3 exemplaires avant de filtrer avec Get-unique.:pinch:

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

Plus d'informations
il y a 12 ans 2 semaines #17128 par Philippe
Réponse de Philippe sur le sujet Re:doublons
salut wagga

peut être pourrais tu confirmé l'origine du problème en utilisant un éditeur du type Notepad++ qui te permet de visualisé les caractères spéciaux

ou sinon si c'est possible déposé ici temporairement les fichiers généré pour que l'on puisse les contrôlés.<br><br>Message édité par: 6ratgus, à: 6/03/14 10:30

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

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