Question Ajout et tri dans un fichier texte

Plus d'informations
il y a 14 ans 7 mois #9943 par pham
Bonjour à tous,
Alors j'ai fais un petit script enfaite qui détecte toutes les imprimantes de mon entreprise

[code:1]

net view \\serveur > netview.txt
get-content netview.txt | foreach{($_.split(\"\"«»))[0]} > liste.txt
Get-Content liste.txt | ForEach-Object{$_ -replace '^(.*)$','$0.suffixe'} | Set-Content listePRN.TXT
Get-Content listePRN.txt | ForEach-Object{
$ping = ping $_
if( $? -eq \"True\" )
{Get-Content listePRN.TXT | ForEach-Object{$_ -replace '^(.*)$','$0 OK'} | Set-Content listeOK.TXT}
else{Get-Content listePRN.TXT | ForEach-Object{$_ -replace '^(.*)$','$0 KO'} | Set-Content listeKO.TXT}}
[/code:1]
Alors donc sur la première ligne je met dans le fichier netview.txt la liste des imprimantes.
Sur la 2eme ligne je prend seulement la premiere colonne et je le met dans le fichier liste.txt
Dans la 3eme ligne j'ajoute le suffixe aux imprimantes qui vont dans le fichier listePRN.TXT
Et enfin je ping la liste, et c'est là que je suis bloqué, j'aimerais pour les imprimantes répondant au PING les mettre dans un fichier texte ok.txt par exemple. Et pour les autres ko.txt
Mais je n'y arrive pas, avec ce code j'ai des OK et des KO partout sur les 2 fichiers.
En vous remerciant d'avance.

edit: enfaite pour préciser, j'aimerais juste avoir le bout de code, qui me permet pour les imprimantes ayant le code TRUE d'aller dans un fichier texte ( OK.TXT ) avec dedans imprimante1 = OK, et pour le code FALSE d'aller dans un fichier texte ( KO.TXT par ex) et imprimante2 = KO.<br><br>Message édité par: zouker, à: 25/07/11 18:28

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

Plus d'informations
il y a 14 ans 7 mois #9946 par Laurent Dardenne
Salut,
essaie ceci :
[code:1]
$listeOK=@()
$listeKO=@()

net view \\serveur |
Foreach-Object{ ($_.split(\&quot;\&quot;«»))[0] }|
ForEach-Object{
$_ -replace '^(.*)$','$0.suffixe'} |
ForEach-Object{
$ping = ping $_
if( $? )
{ $listeOK +=$_ -replace '^(.*)$','$0 OK' }
else
{ $listeKO +=$_ -replace '^(.*)$','$0 KO' }
}

$listeOK|Set-Content listeOK.TXT
$listeKO|Set-Content listeKo.TXT
[/code:1]

Tutoriels PowerShell

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

Plus d'informations
il y a 14 ans 7 mois #9958 par pham
Réponse de pham sur le sujet Re:Ajout et tri dans un fichier texte
ca fonctionne nickel, merci ! par contre toutes mes requetes dans le fichier texte sont collés. Comment faire pour à chaque ping revenir à la ligne ?


imprimante ok
imprimate2 ok
alors que là tout est
imprimanteokimprimante2ok

merci d'avance

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

Plus d'informations
il y a 14 ans 7 mois #9960 par pham
Réponse de pham sur le sujet Re:Ajout et tri dans un fichier texte
voici mon nouveau code, et comme expliqué plus haut je voudrais avoir un retour de ligne à chaque OK.

[code:1]
net view \\serveur |
Foreach-Object{ ($_.split(\&quot;\&quot;«»))[0] }|
ForEach-Object{
$_ -replace '^(.*)$','$0.suffixe'}|
ForEach-Object{
ping $_
if($? -eq \&quot;True\&quot;«»)
{$ok+=$_ -replace '`n','^(.*)$','$0.OK' }
else
{$ko+=$_ -replace '`n','^(.*)$','$0.KO' }

$ok |Set-Content ok.txt
$ko |Set-Content ko.txt
}
[/code:1]

Ce code fonctionne mais avec tout collé.
Cdt,
Et merci d'avance.

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

Plus d'informations
il y a 14 ans 7 mois #9965 par Laurent Dardenne
Tu n'as pas recopié les instructions de création de tableaux AVANT ton traitement, ce qui fait que PS traite tes variables comme des chaînes de caractères (l'opèrateur Replace renvoi une string), donc il fait ce que tu lui demandes, il les concatène :)<br><br>Message édité par: Laurent Dardenne, à: 27/07/11 19:25

Tutoriels PowerShell

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

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