Domanda

Windows XP

Il mio file batch viene eseguito un comando che ha diverse linee di uscita. Come posso contare (e conservare in un variabile) le linee di uscita senza mai scrivere sul disco?

È stato utile?

Soluzione

Ecco esempio di script che conterà le linee nell'output del comando 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

È possibile sostituire dir con il comando ed è possibile utilizzare le virgolette e specificare i parametri. Si dovrà fuggire alcuni altri personaggi anche se -. ^, | < > e &

Se avete bisogno di contare non solo le linee, ma anche analizzare ogni riga, potrebbe essere necessario cambiare il delimitatore gettone da _ (come ho usato l'esempio) per qualcos'altro che non si tradurrà nella linea di divisione in più token.

Altri suggerimenti

dir | find /v /c "zzzxxx"

dà un numero di righe

e mentre si è in esso, è possibile anche scaricare GNU (coreutils) per le finestre e utilizzare lo strumento wc: ad esempio

dir | wc -l
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top