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 :

Traiter un fichier texte par glisser/déposer [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2015
    Messages : 126
    Par défaut Traiter un fichier texte par glisser/déposer
    Bonjour les développeurs

    Habituellement, je me sers d'un éditeur de texte, comme Notepad++, pour supprimer les lignes vides ainsi que des lignes spécifiques à l'aide d'expressions régulières dans des fichiers .txt et .bat

    Les expressions régulières dont je me sers sont:

    .*le_mot_spécifique.*\r\n pour supprimer les lignes vides et les lignes qui contiennent le mot spécifique

    ^.*le_mot_spécifique.*$ pour supprimer uniquement les lignes qui contiennent le mot spécifique

    Mais ce script me facilite le travail. Il fonctionne très bien si le fichier (.txt ou .bat) à traiter se trouve dans le même répertoire que le batch.

    Comment traiter un fichier s'il se trouve dans un autre répertoire par glisser/déposer ?

    Voici le script:

    Code Batch : 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
    @echo off
    echo.
    echo Le batch accepte le nom du fichier avec espace
    echo.
    echo ( Les extensions sont: .txt et .bat )
    echo.
    set /p "file=Tapez le nom du fichier et son extension: "
     
    echo.
     
    echo ( Le mot est sensible … la casse "Mot" et "mot" sont diff‚rents )
    echo.
    set /p "mot=Tapez le mot … supprimer de chaque ligne: "
     
    rem on supprime toutes les lignes vides et on crée le fichier _file
    (for /f "delims=" %%a in ('type "%file%"') do echo %%a)>>_"%file%"
     
     
    rem on supprime le mot spécifique de chaque ligne du fichier file
    type _"%file%" | find /v "%mot%" > __"%file%"
     
    rem on supprime le fichier _file
    del _"%file%"
     
    rem on renomme le fichier __file en _file
    ren __"%file%" _"%file%"
     
    echo.
    pause

    Merci de votre aide.

  2. #2
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2015
    Messages : 126
    Par défaut
    Bonsoir les développeurs

    Après maintes recherches, j'ai trouvé comment traiter un fichier dans un autre répertoire par glisser/déposer. Mais il y a 1 problème:

    le fichier traité est sauvegardé dans le répertoire du batch. Je voudrais qu'il soit sauvegardé avec le fichier d'origine.

    Voici le script:

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    @echo off
    setlocal enabledelayedexpansion
    set "working_folder=%~dp0"
    if not "%~1"=="" (
    if exist "%~1" (
    set "glisser_deposer=%~f1"    
        )
    )
    if not "%glisser_deposer%"=="" (
        if exist "%glisser_deposer%\*" (
    
            set "working_folder=%glisser_deposer%"
    
        )
    )
    
    pushd "%working_folder%"
    echo Chemin et fichier actuels : "%~1"
    echo.
    echo Le batch accepte le nom du fichier avec espace
    echo.
    echo ( Les extensions sont: .txt et .bat )
    echo.
    echo ( Le mot est sensible … la casse "Mot" et "mot" sont diff‚rents )
    echo.
    set /p "mot=Tapez le mot … supprimer de chaque ligne: "
    
    rem on supprime le mot spécifique de chaque ligne du fichier file
    type "%~1" | find /v "%mot%" > _"%~nx1"
    
    
    rem on supprime toutes les lignes vides et on crée le fichier __file
    (for /f "delims=" %%a in ('type _"%~nx1"') do echo %%a)>>__"%~nx1"
    
    
    rem on supprime le fichier _file
    del _"%~nx1"
    
    rem on renomme le fichier __file en _file
    ren __"%~nx1" _"%~nx1"
    
    echo.
    pause
    Une petite ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2016
    Messages : 18
    Par défaut
    comme ça :

    Code batch : 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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    @echo off
    setlocal enabledelayedexpansion
    set "working_folder=%~dp0"
    if not "%~1"=="" (
    if exist "%~1" (
    set "glisser_deposer=%~f1"    
        )
    )
    if not "%glisser_deposer%"=="" (
        if not exist "%glisser_deposer%\*" (
     
            set "working_folder=%~dp1"
     
        )
    )
     
    pushd "%working_folder%"
    echo Chemin et fichier actuels : "%~1"
    echo.
    echo Le batch accepte le nom du fichier avec espace
    echo.
    echo ( Les extensions sont: .txt et .bat )
    echo.
    echo ( Le mot est sensible … la casse "Mot" et "mot" sont diff‚rents )
    echo.
    set /p "mot=Tapez le mot … supprimer de chaque ligne: "
     
    rem on supprime le mot spécifique de chaque ligne du fichier file
    type "%~1" | find /v "%mot%" > _"%~nx1"
     
     
    rem on supprime toutes les lignes vides et on crée le fichier __file
    (for /f "delims=" %%a in ('type _"%~nx1"') do echo %%a)>>__"%~nx1"
     
     
    rem on supprime le fichier _file
    del _"%~nx1"
     
    rem on renomme le fichier __file en _file
    ren __"%~nx1" _"%~nx1"
     
    echo.
    pause

  4. #4
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2015
    Messages : 126
    Par défaut
    Bonsoir Flammrock.

    Mille mercis pour ton aide précieuse. Ça fonctionne merveilleusement bien.

    Bonne soirée. Bonne santé et à+ peut-être.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 08/05/2015, 16h13
  2. [Batch] Modification d'un fichier txt par glisser/déposer
    Par L.rod dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 18/09/2009, 13h41
  3. Remplacer une ligne d'un fichier texte par une autre
    Par devalender dans le forum WinDev
    Réponses: 12
    Dernier message: 24/07/2007, 19h51
  4. Lire fichier texte par morceaux
    Par lilibert dans le forum MATLAB
    Réponses: 1
    Dernier message: 12/07/2007, 09h37
  5. Ajouter un enregistrement par glisser/déposer
    Par KonTiKI dans le forum IHM
    Réponses: 3
    Dernier message: 08/03/2007, 17h59

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