file batch: linee negozio di uscita del comando senza scrivere su un file?
-
22-09-2019 - |
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?
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