IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Batch ou exe pour recherche un mot dans plusieurs fichiers .txt afin de calculer le FPY


Sujet :

Scripts/Batch

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    janvier 2023
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2023
    Messages : 7
    Points : 1
    Points
    1
    Par défaut Batch ou exe pour recherche un mot dans plusieurs fichiers .txt afin de calculer le FPY
    Bonjour,

    Je souhaite rechercher un mot par ex : "PASS" et/ou "OK" contenu dans des fichiers .txt, qui sont stockés dans un dossier, de comptabiliser ces mots "PASS" trouvés afin de calculer son FPY (Rendement au premier passage = nombre de produits de qualité ÷ nombre total d'unités produites). Ici ce serait : nombre de "PASS" ÷ nombre de fichier total.

    Possibilité de changer le mot à rechercher, soit "PASS", "OK" ou "FAIL" et ensuite lancer la recherche et le calcul.

    Comment créer ce type de batch ou d'exe pour cela ?
    Je ne sais pas du tout par ou commencer, je suis novice en batch.

    Je sais le faire manuellement en passant par notepad++ (recherche mot dans fichiers) et le calculer moi-même mais je souhaiterai l'automatiser, exécuter la recherche et le calcul beaucoup plus rapidement et simplement.
    Aidez moi svp ! je suis perdu !

    Merci par avance pour votre aide.
    Cordialement

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    janvier 2023
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2023
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    y a t-il quelqu'un pour m'aider svp ?

  3. #3
    Membre actif
    Avatar de troxsa
    Inscrit en
    novembre 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : novembre 2004
    Messages : 386
    Points : 264
    Points
    264
    Par défaut
    Bonjour,

    Solution en Powershell qui est, je pense, la plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $MesFichiers = Get-ChildItem C:\*.txt -Recurse -ErrorAction SilentlyContinue
    
    
    $Resultats = $MesFichiers | Select-String -Pattern "PASS|OK|FAIL"
    
    
    $Resultats

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    janvier 2023
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2023
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Merci pour ton retour troxsa !
    Je vais essayer avec powershell, ne connaissant pas du tout ce logiciel. je vais essayer de le prendre en main.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    janvier 2023
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2023
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour

    Suite à l'essai de ce script, j'ai l'erreur suivante :

    PS C:\Windows\system32> $MesFichiers = Get-ChildItem C:\devel\rio\26 - Statistique\FPY\PVresults\LAC00564.txt -Recurse -ErrorAction SilentlyContinue
    Get-ChildItem : A positional parameter cannot be found that accepts argument 'Statistique\FPY\PVresults\LAC00564.txt'.
    At line:1 char:16
    + ... sFichiers = Get-ChildItem C:\devel\rio\26 - Statistique\FPY\PVresults ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : InvalidArgument: ( [Get-ChildItem], ParameterBindingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand

    Pouvez-vous m'aider à rectifier le codage ?

    Merci d'avance !
    Cordialement

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    janvier 2023
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2023
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour

    Avec ça j'arrive à lire dans 1 fichier .txt sélectionné au préalable du répertoire, soit 'PASS', 'FAIL' ou 'OK'.

    Comment je peux le faire pour tous les fichiers .txt contenu dans le dossier ?

    Ensuite compter le nombre de PASS, de FAIL ou de OK total pour mon calcul ?

    Voici le code :

    Clear-Host
    $varCheminRepertoireScript = [System.IO.Path]::GetDirectoryName($MyInvocation.MyCommand.Definition) #On récupère le chemin du répertoire contenant ce script
    $currentScriptName = $MyInvocation.MyCommand.Name #Récupération du nom du script en cours
    $currentScriptName = $currentScriptName.substring(0,$($currentScriptName.lastindexofany(".")))

    $ValeurParDefaut = "FichierAFiltrer.txt" #Nom du fichier par defaut dans lequel on va faire la recherche
    $MonFolder = Get-ChildItem -Path $varCheminRepertoireScript -File | Where-Object {$_.Name -match '.txt$'} #On récupère la liste des fichiers en .txt de ce répertoire
    foreach ($MyFile in $MonFolder)
    {
    $ValeurParDefaut = $MyFile.name #Le premier fichier .txt trouvé servira de valeur par défaut
    break
    }
    $ReponseUtilisateur = read-host "Entrez le nom du fichier à filtrer (réponse par défaut si vide : $($MyFile.name)"
    if ($ReponseUtilisateur.Length -eq 0) {$ReponseUtilisateur = $ValeurParDefaut} #Si l'utilisateur n'a pas répondu, on met une valeur par défaut

    #Création du fichier contenant le résultat
    $EmplacementFichierAvecLeResultat = "$varCheminRepertoireScript\$($currentScriptName)_Resultat.txt"
    $MonFichierAvecLeResultat = New-Item -type file $EmplacementFichierAvecLeResultat -Force

    #Ouverture du fichier à analyser
    $NomFichieraLire = $ReponseUtilisateur
    $EmplacementFichier = [string]
    $EmplacementFichier = "$varCheminRepertoireScript\$NomFichieraLire"
    $MonFichier = get-content $EmplacementFichier

    $NumeroDeLine = 0
    foreach ($UneLigne in $MonFichier){
    $NumeroDeLine++
    if ($UneLigne -match 'studio' -eq $true) { #Lignes qui contiennent le mot studio
    #if ($UneLigne -match '^footer_' -eq $true) { #Lignes qui commencent par footer__
    #if ($UneLigne -match 'jpg$' -eq $true) { #Lignes qui se terminent par .jpg
    #if (($UneLigne -match '^210') -and ($UneLigne -match 'jpg$') -eq $true) { #Lignes qui commencent par 210 et qui se terminent par .jpg
    #Where {$_.name -notlike "*014*"}
    $MyLine = "Ligne $($NumeroDeLine) : $($UneLigne)"
    Write-host $MyLine
    add-content $MonFichierAvecLeResultat $MyLine
    }
    }

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    janvier 2023
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2023
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Je suis proche de l'objectif, je suis bloqué il me manque un petit coup de pouce svp

    Je n'arrive pas à automatiser ça sur tout le contenu du répertoire qui contient de nombreux fichiers .txt.
    Mon programme ne le fait que sur 1 seul fichier txt.

    Pour ensuite pouvoir l'interpréter dans mon calcul, c'est à dire comptabiliser le nombre de PASS ou FAIL obtenu.

    Pouvez-vous m'aider svp !!?

    Merci.

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    janvier 2023
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2023
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Personne pour une idée ?

  9. #9
    Membre éprouvé
    Femme Profil pro
    ..
    Inscrit en
    décembre 2019
    Messages
    504
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 93
    Localisation : Autre

    Informations professionnelles :
    Activité : ..

    Informations forums :
    Inscription : décembre 2019
    Messages : 504
    Points : 1 104
    Points
    1 104
    Par défaut
    Salut,

    Je n'utilise pas powershell mais pour cmd on peut imaginer quelque chose comme
    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for /f %%i in ('dir /b /a-d *.txt ^| find /v /c ""') do set /a nb_total=%%~i
    for /f %%i in ('findstr /m "PASS OK" *.txt ^| find /v /c ""') do set /a nb_PASS=%%~i
    set /a FPY_PASS= (nb_PASS * 100) / nb_total
    echo FPY= %FPY_PASS% %%

Discussions similaires

  1. Recherche d'info dans plusieur fichier .TXT
    Par lixil dans le forum VBScript
    Réponses: 5
    Dernier message: 14/11/2014, 23h22
  2. [Batch] rechercher un mot dans un fichier
    Par apetroff dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 11/12/2009, 15h18
  3. [batch] Comment rechercher deux mots dans un fichier .txt ?
    Par koKoTis dans le forum FAQs Windows
    Réponses: 0
    Dernier message: 10/02/2009, 17h54
  4. Recherche de mot dans un fichier
    Par Bennybear dans le forum C++
    Réponses: 6
    Dernier message: 23/03/2007, 20h12
  5. Module de recherche de mots dans plusieurs fichiers
    Par hat_et_m dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 24/09/2006, 20h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo