Question
Trouvez des données
- Sheyks
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 16
- Remerciements reçus 0
il y a 11 ans 9 mois #17667
par Sheyks
Réponse de Sheyks sur le sujet Re:Trouvez des données
En gros, qu'il trouve l'un ou l'autre ou les deux en même temps, peut importe leur position dans le code, j'aimerais qu'il me l'indique dans un fichier text exemples :
Retour à \"site XX\" trouver dans \"log.txt\"
Aucun retour à \".net\" trouvée dans \"log.txt\"
Désolé si je suis pas clair ^^
Retour à \"site XX\" trouver dans \"log.txt\"
Aucun retour à \".net\" trouvée dans \"log.txt\"
Désolé si je suis pas clair ^^
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 11 ans 9 mois #17668
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Trouvez des données
Sheyks écrit:
[code:1]
@'
site 16 .net
'@ > \"$chemin\f6.txt\"
[/code:1]
est-ce qu'on peut avoir un fichier dont une des ligne comporte 'site 16' ET '.net' ?
Bha, faut prendre le temps de l'être, par exemple en proposant un jeux de test :Désolé si je suis pas clair ^^
[code:1]
@'
site 16 .net
'@ > \"$chemin\f6.txt\"
[/code:1]
est-ce qu'on peut avoir un fichier dont une des ligne comporte 'site 16' ET '.net' ?
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Sheyks
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 16
- Remerciements reçus 0
il y a 11 ans 9 mois #17669
par Sheyks
Réponse de Sheyks sur le sujet Re:Trouvez des données
Voilà un fichier, par contre je comprend pas le
@'
site 16 .net
'@ > \"$chemin\f6.txt\"
ça cherche dans le fichier dit les fameux \"site 16\" et \".net\"?
@'
site 16 .net
'@ > \"$chemin\f6.txt\"
ça cherche dans le fichier dit les fameux \"site 16\" et \".net\"?
La pièce jointe HTLMpublic.txt est absente ou indisponible
Pièces jointes :
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 11 ans 9 mois #17670
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Trouvez des données
Sheyks écrit:
Sheyks écrit:
Certes, mais tu ne réponds pas ma question...Voilà un fichier
Sheyks écrit:
C'est une here string,cela permet de construire une chaine comportant des retour chariot.par contre je comprend pas le @'
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Sheyks
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 16
- Remerciements reçus 0
il y a 11 ans 9 mois #17672
par Sheyks
Réponse de Sheyks sur le sujet Re:Trouvez des données
Autant pour moi j'ai pensé que tu demander un fichier ^^
Ca me semble peut probable que \"site 16\" ET \".net\" soit sur une même ligne.
Ca me semble peut probable que \"site 16\" ET \".net\" soit sur une même ligne.
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 11 ans 9 mois #17673
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Trouvez des données
Sheyks écrit:

Une solution qui reprend ton ébauche, mais perso je trouve que ce n'est pas la bonne approche :
[code:1]
$chemin= \"C:\temp\\"
@'
fdfdf
site 16
'@ > \"$chemin\f1.txt\"
@'
fdfdf
site16
'@ > \"$chemin\f2.txt\"
@'
fdfdf
.net
'@ > \"$chemin\f3.txt\"
@'
fdfdf
.net
ezez
site 16
'@ > \"$chemin\f4.txt\"
@'
fdfdf
net
site 16
'@ > \"$chemin\f5.txt\"
@'
fdfdf
.net site 16
'@ > \"$chemin\f6.txt\"
@'
site 16
dfd
site 16
fdf
site 16 site 16
dsd
'@ > \"$chemin\f7.txt\"
$CorrespondanceSite= new-object System.Collections.ArrayList
$CorrespondanceNet = new-object System.Collections.ArrayList
Foreach ($File in Get-ChildItem \"$chemin\f*.txt\" -Recurse| Where {-not $_.PSIsContainer })
{
$isMatchNet=$false
$isMatchSite=$false
Foreach ($Line in $File|Get-Content)
{
if ($Line -match '(\.net|site 16)')
{
if (($isMatchNet -eq $false) -and ($matches[1] -eq '.net') )
{
$isMatchNet=$true
$CorrespondanceNet.Add(\"Retour sur les anciens sites .net trouvé dans le fichiers $File\"«») > $null
}
if (($isMatchSite -eq $false)-and ($matches[1] -eq 'site 16'))
{
$isMatchSite=$true
$CorrespondanceSite.Add(\"Retour sur les sites d'images trouvé dans le fichiers $File\"«») > $null
}
}
}#foreach Line
if ( $isMatchNet -eq $false)
{ $CorrespondanceNet.Add(\"Aucun retour sur les anciens site .net dans le fichier $File\"«») > $null }
if ($isMatchSite -eq $false)
{ $CorrespondanceSite.Add(\"Aucun retour sur le site d'images dans le fichier $File\"«») > $null }
}#foreach File
$CorrespondanceSite
$CorrespondanceNet
[/code:1]
Le cas du fichier 'f6.txt' ne teste qu'une des deux occurrences, de plus le résultat dépend de l'ordre d'apparition.
Donc le défaut ici est que tu peux pas dire à partir du résultat quels sont les fichiers qui ne contiennent ni l'une ni l'autre des occurrences...
Une décision à assumerCa me semble peut probable que \"site 16\" ET \".net\" soit sur une même ligne.
Une solution qui reprend ton ébauche, mais perso je trouve que ce n'est pas la bonne approche :
[code:1]
$chemin= \"C:\temp\\"
@'
fdfdf
site 16
'@ > \"$chemin\f1.txt\"
@'
fdfdf
site16
'@ > \"$chemin\f2.txt\"
@'
fdfdf
.net
'@ > \"$chemin\f3.txt\"
@'
fdfdf
.net
ezez
site 16
'@ > \"$chemin\f4.txt\"
@'
fdfdf
net
site 16
'@ > \"$chemin\f5.txt\"
@'
fdfdf
.net site 16
'@ > \"$chemin\f6.txt\"
@'
site 16
dfd
site 16
fdf
site 16 site 16
dsd
'@ > \"$chemin\f7.txt\"
$CorrespondanceSite= new-object System.Collections.ArrayList
$CorrespondanceNet = new-object System.Collections.ArrayList
Foreach ($File in Get-ChildItem \"$chemin\f*.txt\" -Recurse| Where {-not $_.PSIsContainer })
{
$isMatchNet=$false
$isMatchSite=$false
Foreach ($Line in $File|Get-Content)
{
if ($Line -match '(\.net|site 16)')
{
if (($isMatchNet -eq $false) -and ($matches[1] -eq '.net') )
{
$isMatchNet=$true
$CorrespondanceNet.Add(\"Retour sur les anciens sites .net trouvé dans le fichiers $File\"«») > $null
}
if (($isMatchSite -eq $false)-and ($matches[1] -eq 'site 16'))
{
$isMatchSite=$true
$CorrespondanceSite.Add(\"Retour sur les sites d'images trouvé dans le fichiers $File\"«») > $null
}
}
}#foreach Line
if ( $isMatchNet -eq $false)
{ $CorrespondanceNet.Add(\"Aucun retour sur les anciens site .net dans le fichier $File\"«») > $null }
if ($isMatchSite -eq $false)
{ $CorrespondanceSite.Add(\"Aucun retour sur le site d'images dans le fichier $File\"«») > $null }
}#foreach File
$CorrespondanceSite
$CorrespondanceNet
[/code:1]
Le cas du fichier 'f6.txt' ne teste qu'une des deux occurrences, de plus le résultat dépend de l'ordre d'apparition.
Donc le défaut ici est que tu peux pas dire à partir du résultat quels sont les fichiers qui ne contiennent ni l'une ni l'autre des occurrences...
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.056 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Trouvez des données