2010-01-22 5 views

Répondre

2

Voici un exemple de script qui comptera les lignes dans la sortie de la commande dir.

@echo off 
setlocal enabledelayedexpansion 

set lc=0 

for /f "usebackq delims=_" %%i in (`dir`) do (
    echo %%i 
    set /a lc=!lc! + 1 
) 

echo %lc% 

endlocal 

Vous pouvez remplacer dir avec votre commande et vous pouvez utiliser des guillemets et spécifier les paramètres. Vous devrez cependant échapper à d'autres caractères - ^, |<> et &. Si vous devez non seulement compter les lignes, mais aussi analyser chaque ligne, vous devrez peut-être changer le séparateur de jetons de _ (comme je l'ai utilisé dans l'exemple) en quelque chose qui n'aboutira pas à la division de ligne plusieurs jetons.

+1

Vous pouvez spécifier une liste de delimiter vide empêcher tokenizing avec juste 'delims =' sans rien suivant le '='. – Joey

+0

Vous avez raison, j'ai oublié cette option. Comment mon cahier de référence de programmation Windows me manque-t-il parfois ... :-) –

+0

Il existe un livre de référence de programmation de shell Windows? : O Donne-moi! : D ... Vous n'avez pas non plus besoin d'une expansion retardée. 'set/a lc + = 1' fera l'affaire. – Joey

0

et pendant que vous y êtes, vous pouvez également télécharger GNU packages(coreutils) pour Windows et utilisez l'outil de wc: par exemple

dir | wc -l 
3
dir | find /v /c "zzzxxx" 

donne un nombre de lignes

Questions connexes