Question
Traitement de chaines de caracteres (Résolu)
- daniel soares
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 133
- Remerciements reçus 0
il y a 15 ans 11 mois #1096
par daniel soares
Traitement de chaines de caracteres (Résolu) a été créé par daniel soares
Bonjour je voudrais sur un script de test d'url entrer automatiquement les login et mot de passe issus d'un fichier csv
le fichier est sous la forme
____________________________________________________
environnement1;url1;login1;mdp1;text1;...
environnement2;url2;login2;mdp2;text2;formulaire2;...
_____________________________________________________
le nombre de lignes et de colones est indeterminé mais le caractere de separation est le point virgule
je sais retrouver les lignes qui ont une url par contre je ne sais pas comment extraire la valeur qui se trouve derriere le ; qui suit l'url pour le stocker en tant que login et extraire la valeur suivante en tant que mdp ... etc si plusieurs entrées de formulaires sont necessaires.
le dernier test serait donc de verifier si il n'y a plus de ; sur la ligne.
un autre point serait de faire un appel de fonction a chaque test pour lancer le script suivant qui est le test lui meme
__________________________________________________
$ie = New-Object -ComObject InternetExplorer.Application
$ie.Navigate(\"http://monurl1/Login.aspx\")
for ($wait =1; $wait -le 400; $wait++)
{$wait | out-null}
# $ie |out-file temp
$ie.document.getElementById('UserLogin').value =\"login1\"
$ie.document.getElementById('UserPass').value =\"mdp1\"
$ie.document.getelementbyid('objLoginBtn').click()
# $ie | out-file temp
for ($wait =1; $wait -le 400; $wait++)
{$wait | out-null}
$ie.Document.getElementById('txtCustomerCode').value =\"valeur1\"
$ie.document.getelementbyid('objSubmitIdentifierBtn').click()
$ie.Visible = $true
___________________________________________________
merci d'avance
existe il une doc specialisée dans les manipulations de chaines de caracters<br><br>Message édité par: Arnaud, à: 12/10/07 09:58
le fichier est sous la forme
____________________________________________________
environnement1;url1;login1;mdp1;text1;...
environnement2;url2;login2;mdp2;text2;formulaire2;...
_____________________________________________________
le nombre de lignes et de colones est indeterminé mais le caractere de separation est le point virgule
je sais retrouver les lignes qui ont une url par contre je ne sais pas comment extraire la valeur qui se trouve derriere le ; qui suit l'url pour le stocker en tant que login et extraire la valeur suivante en tant que mdp ... etc si plusieurs entrées de formulaires sont necessaires.
le dernier test serait donc de verifier si il n'y a plus de ; sur la ligne.
un autre point serait de faire un appel de fonction a chaque test pour lancer le script suivant qui est le test lui meme
__________________________________________________
$ie = New-Object -ComObject InternetExplorer.Application
$ie.Navigate(\"http://monurl1/Login.aspx\")
for ($wait =1; $wait -le 400; $wait++)
{$wait | out-null}
# $ie |out-file temp
$ie.document.getElementById('UserLogin').value =\"login1\"
$ie.document.getElementById('UserPass').value =\"mdp1\"
$ie.document.getelementbyid('objLoginBtn').click()
# $ie | out-file temp
for ($wait =1; $wait -le 400; $wait++)
{$wait | out-null}
$ie.Document.getElementById('txtCustomerCode').value =\"valeur1\"
$ie.document.getelementbyid('objSubmitIdentifierBtn').click()
$ie.Visible = $true
___________________________________________________
merci d'avance
existe il une doc specialisée dans les manipulations de chaines de caracters<br><br>Message édité par: Arnaud, à: 12/10/07 09:58
Connexion ou Créer un compte pour participer à la conversation.
- Jacques Barathon
- Hors Ligne
- Administrateur
-
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 15 ans 11 mois #1099
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:chaines de caracteres
Tu peux lire ton fichier csv sous cette forme:
[code:1]
get-content fichier.csv | foreach {
$env,$url,$login,$mdp,[array]$reste = $_.Split(\";\"«»)
}[/code:1]
Ici, les quatre premiers champs de chaque ligne sont affectés respectivement aux variables $env, $url, $login et $mdp.
Les valeurs restantes sur la ligne sont affectées au tableau $reste. Elles sont accessibles dans leur ordre d'apparition sur la ligne en tant que $reste[0], $reste[1], etc. Le tableau est vide s'il n'y a que quatre valeurs sur une ligne.
A toi de gérer dans la boucle foreach l'appel à la fonction en lui passant les paramètres comme il convient.
Janel<br><br>Message édité par: janel, à: 10/10/07 18:34
[code:1]
get-content fichier.csv | foreach {
$env,$url,$login,$mdp,[array]$reste = $_.Split(\";\"«»)
}[/code:1]
Ici, les quatre premiers champs de chaque ligne sont affectés respectivement aux variables $env, $url, $login et $mdp.
Les valeurs restantes sur la ligne sont affectées au tableau $reste. Elles sont accessibles dans leur ordre d'apparition sur la ligne en tant que $reste[0], $reste[1], etc. Le tableau est vide s'il n'y a que quatre valeurs sur une ligne.
A toi de gérer dans la boucle foreach l'appel à la fonction en lui passant les paramètres comme il convient.
Janel<br><br>Message édité par: janel, à: 10/10/07 18:34
Connexion ou Créer un compte pour participer à la conversation.
- daniel soares
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 133
- Remerciements reçus 0
il y a 15 ans 11 mois #1124
par daniel soares
Réponse de daniel soares sur le sujet Re:chaines de caracteres
merci ca fonctionne et c'est beaucoup plus simple que je pensais
get-content fichier.csv | where {$_ -match \"http\"} | foreach {
[array]$infos = $_.Split(\";\")
write-host \"env \" $infos[0]
write-host \"url \" $infos[1]
write-host \"compte \" $infos[2]
write-host \"mdp \" $infos[4]
write-host \"user \" $infos[6]
write-host \"param \" $infos[7]
}
get-content fichier.csv | where {$_ -match \"http\"} | foreach {
[array]$infos = $_.Split(\";\")
write-host \"env \" $infos[0]
write-host \"url \" $infos[1]
write-host \"compte \" $infos[2]
write-host \"mdp \" $infos[4]
write-host \"user \" $infos[6]
write-host \"param \" $infos[7]
}
Connexion ou Créer un compte pour participer à la conversation.
- Jacques Barathon
- Hors Ligne
- Administrateur
-
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 15 ans 11 mois #1132
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:chaines de caracteres
Impeccable.
Petite précision: tu n'as pas besoin de préciser [array] devant ta variable $infos. Le type est déduit de ce qui est passé après le signe '='.
Janel
Petite précision: tu n'as pas besoin de préciser [array] devant ta variable $infos. Le type est déduit de ce qui est passé après le signe '='.
Janel
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.047 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Traitement de chaines de caracteres (Résolu)