[BATCH] Récupérer ligne fichier texte [Résolu/Fermé]

Signaler
Messages postés
101
Date d'inscription
jeudi 10 septembre 2009
Statut
Membre
Dernière intervention
14 août 2015
-
 fang -
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60386 internautes nous ont dit merci ce mois-ci

Messages postés
101
Date d'inscription
jeudi 10 septembre 2009
Statut
Membre
Dernière intervention
14 août 2015
10
Génial ça fonctionne parfaitement !
Merci !

Possible d'avoir un petite explication sur le
setlocal enabledelayedexpansion

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


SVP ?
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.