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

Windows Discussion :

Suppression de chaînes de caractères


Sujet :

Windows

  1. #1
    Inactif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 054
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 054
    Points : 340
    Points
    340
    Par défaut Suppression de chaînes de caractères
    Bonjour à tous, je recherche un moyen de rechercher et de supprimer une chaîne de caractère dans tous les fichiers ou elle sera trouver.

    Quelqu’un peut m’aider ?

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Bonjour,

    Le plus simple à mon goût est d'installer les "unix utils", puis de faire un script shell à base de grep ou ce genre de choses.

    Il doit surement être possible de faire la même chose en batch, mais à ce moment là, le forum Developpement Windows devrait mieux répondre à ta question.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  3. #3
    Inactif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 054
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 054
    Points : 340
    Points
    340
    Par défaut
    Bonjour gangsoleil et merci

    Je suis sous Windows, donc sa serai plus pratique avec un batch.

    Je peux lancer une recherche d’une chaîne de caractères avec sa :
    findstr „http://www.gruk.org/server.met.gz“
    Mais je ne voie pas comment supprimer la chaîne.

  4. #4
    Inactif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 054
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 054
    Points : 340
    Points
    340
    Par défaut
    Voici donc un code qui recherche la chaîne de caractères « je suis la » dans tout les fichier « ici.txt » de l’arborescence à partir du répertoire actif :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /R %%i in (ici.txt ) do if exist "%%i" findstr "je suis la" "%%i"
    Quelqu’un saurait-il se que je peut ajouter à ce code pour qu’il supprime la chaîne de caractères « je suis la » ?

  5. #5
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Perl c'est bien pour ce genre de choses. Un peu gros à installer peut-être si on ne s'en sert pas plus que pour ça.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  6. #6
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    attention avec findstr, ne pas oublier le parametre /C si tu veut une phrase entiere et seulement la phrase entière
    Citation Envoyé par findstr /?
    Utilisez des espaces pour séparer plusieurs chaînes à rechercher, sauf si
    l'argument est précédé de /C.
    Exemple*:
    'FINDSTR "bonne journée" x.y' recherche "bonne" ou "journée" dans le fichier x.y.
    'FINDSTR /C:"bonne journée" x.y' recherche "bonne journée" dans le fichier x.y.
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  7. #7
    Inactif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 054
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 054
    Points : 340
    Points
    340
    Par défaut
    Bonjour Luc Hermitte et merci

    Si il faut installer « perl » comme vous dite sa serai un peut inutile juste pour cette commande.


    Bonjour le y@m's et merci

    Merci pour ce rappel j’avais pas compris le truc dans l’aide sa m’évitera d’effacer un truc que je ne doit pas effacer bêtement.



    Si non personne ne sait comment je peux supprimer les chaînes trouver ?

  8. #8
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    le mieux est de recréer le fichier avec grep.
    Il permet d'afficher toutes les lignes d'un fichier sauf celle que tu souhaites.
    Par exemple :

  9. #9
    Inactif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 054
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 054
    Points : 340
    Points
    340
    Par défaut
    Bonjour Laurent Dardenne et merci

    Mais « Grep » n’est pas reconnu sur mon Windows XP

  10. #10
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Il me semble d'avoir déjà communiqué le lien sur les outils Unix portés sous Windows et cité par GangSoleil

    http://unxutils.sourceforge.net/

  11. #11
    Membre expérimenté
    Avatar de Aramis
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 493
    Points : 1 638
    Points
    1 638
    Par défaut
    Salut,

    WinXP n'utilise-t-il pas le VB script? N'est il pas possible de creer et de gerer des expressions regulieres avec? Si oui, il n'est donc plus necessaire d'installer Perl ou bien les Unix Utils....

    A.
    Avant de Poster Lire les Regles! Merci
    -------------------------------------------------
    "The only Way for Evils to Triumph is for Good Men to Do Nothing"
    Edmund Burke (1729 - 1797)

  12. #12
    Inactif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 054
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 054
    Points : 340
    Points
    340
    Par défaut
    Bonjour à tous, je viens de trouver « WOOP »:
    http://www.kik-it.com/index.php?P=woop
    Un complément pour DOS, cette commande permet donc de supprimer une chaîne de caractères, comme ceci elle fonctionne parfaitement sur le répertoire courant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WOOP "Desktop.ini" /C=[{BE098140-A513-11D0-A3A4-00C04FD706EC}] /N=[wipe]
    Cependant il me reste une lacune, j’aimerai pouvoir agir sur touts les fichiers « Desktop.ini » dans le répertoire courant puis tous ses sous répertoire, je viens d’essayer de coupler la commande « woop » avec a commande « for », selon un script qui cherche et vérifie la présence de tout les fichier « Desktop.ini » puis affiche leur contenu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /R %%i in (Desktop.ini) do if exist "%%i" type Desktop.ini "%%i"
    Donc voila le couplage:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /R %%i in (Desktop.ini) do if exist "%%i" WOOP "%%i" /C=[{BE098140-A513-11D0-A3A4-00C04FD706EC}] /N=[wipe] "%%i"
    Mais sa ne marche pas.

    Voyez vous se qui bug dans ce script ?

  13. #13
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Supprime le second %%i, à prioris redondant.
    Essaie d'appeler un sous programme interne en lui passant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if ... do call :traitement %%I
    ...
    :traitement
    woop %1
    ...

  14. #14
    Inactif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 054
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 054
    Points : 340
    Points
    340
    Par défaut
    Bonjour Laurent Dardenne et merci

    Donc j’ai essayer ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for /R %%i in (Desktop.ini) do if exist "%%i" call :traitement "%%i" 
    
    :traitement 
    woop "%%1" /C=[{BE098140-A513-11D0-A3A4-00C04FD706EC}] /N=[wipe]
    Mais sa ne marche pas, le batch s’ouvre puis se referme aussitôt.

  15. #15
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    woop ne gére pas correctement les guillemets dans le nom de fichier, tu ne dois pas les utiliser dans la ligne de commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Echo off
    For /R %%i in (Desktop.ini) do if exist "%%i" set File=%%i&call :traitement
    goto :eof
    
    :traitement 
    woop %file% /C=[{BE098140-A513-11D0-A3A4-00C04FD706EC}] /N=[WIPE] 
    goto %ERRORLEVEL%
    
    :1
    echo erreur 1 ... No Error, Woop Wooped ... :o)
    goto :eof
    :5
    echo erreur 5   ... Syntax Error or Wrong Parameter ...
    goto :eof
    :53
    echo erreur 53  ... A Specified File Doesn't Exist ...
    goto :eof
    :55
    echo erreur 55  ... File Already Opened ...
    goto :eof
    :68
    echo erreur 68  ... Can't Create Specified File ...
    goto :eof
    :250
    echo erreur 250 ... Woop String not found, nothing Wooped ... :)
    goto :eof
    :255
    echo erreur 255 ... Error Somewhere ... :)
    goto :eof
    Tu peux remonter l'info à l'auteur si tu le souhaites, c'est un rennais.

  16. #16
    Inactif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 054
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 054
    Points : 340
    Points
    340
    Par défaut
    Je viens donc d’essayer ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For /R %%i in (Desktop.ini) do if exist "%%i" set File=%%i&call :traitement 
    
    :traitement 
    woop %file% /C=[{BE098140-A513-11D0-A3A4-00C04FD706EC}] /N=[WIPE]
    Mais sa bug, regarder la capture:
    http://pic.aceboard.net/img/5476/8954/1128177652.jpg

  17. #17
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Essaie de spécifier le nom complet du répertoire d'accés pour woop.

  18. #18
    Inactif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 054
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 054
    Points : 340
    Points
    340
    Par défaut
    Encore merci mais je suis sur que sa ne viens pas de la, par ce que « woop » et appeler par une variables, et le « woop » marche très bien sans le reste.

  19. #19
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Furius
    Encore merci mais je suis sur que sa ne viens pas de la, par ce que « woop »
    Je me méfie des certitudes dans mes démarches de dépannage/debug mais tu fais comme tu veux.
    Essaie le code du post précédent, il manquait une instruction de fin après la boucle.

  20. #20
    Inactif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 054
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 054
    Points : 340
    Points
    340
    Par défaut
    Je viens d’essayer avec le chemin complet comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For /R %%i in (Desktop.ini) do if exist "%%i" set File=%%i&call :traitement 
    
    :traitement 
    H:\monSystem\dos\woop %file% /C=[{BE098140-A513-11D0-A3A4-00C04FD706EC}] /N=[WIPE]
    Mais s’est toujours la même erreur.
    Voir la capture

Discussions similaires

  1. suppression fin chaîne de caractère
    Par webol dans le forum Langage
    Réponses: 14
    Dernier message: 15/04/2011, 15h55
  2. suppression d'une chaîne de caractères
    Par new_wave dans le forum VB 6 et antérieur
    Réponses: 27
    Dernier message: 12/09/2006, 12h35
  3. Réponses: 17
    Dernier message: 08/06/2006, 09h34
  4. [Tableaux] Chaîne de caractères et suppression ...
    Par mulbek dans le forum Langage
    Réponses: 5
    Dernier message: 24/11/2005, 15h18
  5. Réponses: 13
    Dernier message: 17/10/2005, 15h32

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