Question Ajout et tri dans un fichier texte
- pham
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 17
- Remerciements reçus 0
il y a 14 ans 7 mois #9943
par pham
Ajout et tri dans un fichier texte a été créé 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
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 14 ans 7 mois #9946
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Ajout et tri dans un fichier texte
Salut,
essaie ceci :
[code:1]
$listeOK=@()
$listeKO=@()
net view \\serveur |
Foreach-Object{ ($_.split(\"\"«»))[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]
essaie ceci :
[code:1]
$listeOK=@()
$listeKO=@()
net view \\serveur |
Foreach-Object{ ($_.split(\"\"«»))[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.
- pham
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 17
- Remerciements reçus 0
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
imprimante ok
imprimate2 ok
alors que là tout est
imprimanteokimprimante2ok
merci d'avance
Connexion ou Créer un compte pour participer à la conversation.
- pham
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 17
- Remerciements reçus 0
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(\"\"«»))[0] }|
ForEach-Object{
$_ -replace '^(.*)$','$0.suffixe'}|
ForEach-Object{
ping $_
if($? -eq \"True\"«»)
{$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.
[code:1]
net view \\serveur |
Foreach-Object{ ($_.split(\"\"«»))[0] }|
ForEach-Object{
$_ -replace '^(.*)$','$0.suffixe'}|
ForEach-Object{
ping $_
if($? -eq \"True\"«»)
{$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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 14 ans 7 mois #9965
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Ajout et tri dans un fichier texte
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
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les initiés
- Ajout et tri dans un fichier texte