Inserstion lignes vides en batch dos
Résolu
jopoiss
Messages postés
104
Statut
Membre
-
mimi -
mimi -
Bonjour,
J'aimerais savoir comment on peut inserer des lignes vides dans un fichier texte avec un *.bat lorsque l'on voit un mot précis.
C'est à dire que je veux que mon batch detecte un mot précis, et que lorsqu'il le voit il insere une ligne vide à la suite. Je précises que le mot que je veux detecté sera toujours en fin de ligne.
Je pense qu'il faudrait utiliser un if mais je suis débutant dans ce domaine alors j'ai besoin votre aide.
Merci d'avance.
J'aimerais savoir comment on peut inserer des lignes vides dans un fichier texte avec un *.bat lorsque l'on voit un mot précis.
C'est à dire que je veux que mon batch detecte un mot précis, et que lorsqu'il le voit il insere une ligne vide à la suite. Je précises que le mot que je veux detecté sera toujours en fin de ligne.
Je pense qu'il faudrait utiliser un if mais je suis débutant dans ce domaine alors j'ai besoin votre aide.
Merci d'avance.
A voir également:
- Echo saut de ligne batch
- Partage de photos en ligne - Guide
- Comment supprimer une page sur word avec un saut de page ? - Guide
- Fichier batch - Guide
- Mètre en ligne - Guide
- Formulaire en ligne de meta - Guide
6 réponses
Bonjour,
Essaie cela, ça doit correspondre à ton attente, je l'espère du moins !
Pour activer le batch tu saisis son nom dans l'invite de commandes suivi de la chaîne de caractères à localiser.
Essaie cela, ça doit correspondre à ton attente, je l'espère du moins !
Pour activer le batch tu saisis son nom dans l'invite de commandes suivi de la chaîne de caractères à localiser.
@SETLOCAL ENABLEDELAYEDEXPANSION
MODE CON COLS=150 LINES=90
ECHO OFF
CLS
ECHO.
ECHO.
ECHO %0.
ECHO.
FOR /L %%I IN (3,-1,0) DO @echo.
ECHO _________________________________________________
ECHO.
ECHO %0 %1 %2 Le %DATE% à %TIME%
ECHO _________________________________________________
ECHO.
TITLE %0 RCHERCHE CHAINE DE CARACTERES ET INSERTION DE LIGNES BLANCHES
CD C:\Documents and Settings\christian\Mes Documents\BATCH_files
rem fichier en entrée contenant le texte à analyser.
SET "testIN_txt=%USERNAME%-testIN.txt"
rem fichiers intermédiaires de travail
SET "testINT_txt=%USERNAME%-testINT.txt"
SET "testINTB_txt=%USERNAME%-testINTB.txt"
IF EXIST %testINT_txt% ( ERASE /A %testINT_txt%)
IF EXIST %testINTB_txt% ( ERASE /A %testINTB_txt%)
rem Numérotage des lignes de texte du fichier en INPUT recopié.
SET /A "calcul=10001"
FOR /F "tokens=1-1* delims=$" %%I in ( %testIN_txt% ) DO (
ECHO !calcul!#%%I >> %testINT_txt%
SET /A "calcul=calcul+10" )
rem -Recherche dans le fichier la chaine de caractères à localiser
SET "loc_chaine=%1"
FOR /F "tokens=1,1 delims=:#" %%I IN (
' TYPE %testINT_txt% ^| FINDSTR /I %loc_chaine%' ) DO (
SET /A "calcul=%%I+1"
ECHO !calcul!# ligne blanche a inserer >> %testINT_txt% )
rem -Tri des lignes du fichier intermédiaire afin de les fusionner.
SORT /+1 /M 1024 /REC 256 %testINT_txt% /O %testINTB_txt%
rem Je n'ai délibérément pas recréer le fichier d'origine testIN_txt par
rem précaution à toi de voir !
ERASE /A %testINT_txt%
rem -Elimination de la partie générique de chaque ligne (numérotation
rem et délimiteur #) du nouveau fichier.
FOR /F "tokens=2,3* delims=#" %%i in ( %testINTB_txt% ) DO (
rem affichage à l'écran pour test ECHO %%i%%j %testINT_txt%
ECHO %%i%%j >> %testINT_txt% )
C'est bon j'ai trouvé de moi même avec un if impliqué dans un for.
Mais merci quand même de t'être penché sur mon problème.
Bonne journée.
Mais merci quand même de t'être penché sur mon problème.
Bonne journée.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question