[BATCH] Récupérer ligne fichier texte

Résolu/Fermé
-Tyrael- Messages postés 101 Date d'inscription jeudi 10 septembre 2009 Statut Membre Dernière intervention 14 août 2015 - 31 juil. 2012 à 16:44
 fang - 21 août 2016 à 11:11
Bonjour,

bon je vais poser la question ça fait 3h que je cherche et que je trouve pas ^^

Je souhaite récupérer la 2eme, la 3eme et les deux dernières lignes d'un fichier texte (oui je sais assez spécial ^^)

J'ai fais :

@echo off
set /p fichier="Glisser votre fichier ici"
set nb=0

for /f %%a in ('find /c /v "" ^<%fichier%') do (
@set nb=%%a
)

set cpt=0
for /f %%a in ('findstr /n /r . %fichier%') do (
set /a cpt+=1
if !cpt! LEQ 3 echo %%a >> fichier.log
)

echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! >> fichier.log

set /a nb=%nb%-2
for /f "skip=%nb%" %%a in ('type %fichier%') do (
echo %%a >> fichier.log
)

echo nb = %nb%
echo cpt = %cpt%
pause>nul


Le premier for sert pour compter le nombre de ligne (merci dubcek)
Le deuxième récupère, normalement, uniquement les 3 premières lignes
Le dernier récupère les 2 dernières lignes

Seul le for du milieu (pour les 3 premières lignes) ne fonctionne pas. Une idée pour m'aider ?

2 réponses

voili voilou:

@echo off
set /p fichier="Glisser votre fichier ici"
set nb=0

for /f %%a in ('find /c /v "" ^<%fichier%') do (
@set nb=%%a
)

set cpt=0
setlocal enabledelayedexpansion
for /f %%a in ('type %fichier%') do (
set /a cpt=!cpt! + 1
if !cpt! LEQ 3 echo %%a >> fichier.log
)

echo ********************************************************** >> fichier.log

set /a nb=%nb%-2
for /f "skip=%nb%" %%a in ('type %fichier%') do (
echo %%a >> fichier.log
)

echo nb = %nb%
echo cpt = %cpt%
pause>nul

a+
5
-Tyrael- Messages postés 101 Date d'inscription jeudi 10 septembre 2009 Statut Membre Dernière intervention 14 août 2015 10
Modifié par -Tyrael- le 1/08/2012 à 08:38
Génial ça fonctionne parfaitement !
Merci !

Possible d'avoir un petite explication sur le
setlocal enabledelayedexpansion

et le
set /a cpt=!cpt! + 1 


SVP ?
1
Bonjour,

Je suis tombé sur votre discution car je cherchais une solution au même problème.
J'ai essayé et ça marche super.

Par contre je ne comprend pas tout le code.

Sur le passage ou tu comptes le nombre de ligne, pourquoi est ce que tu ajoutes ^< devant le nom du fichier ?


Merci.
0