Пакетный файл: хранить строки вывода команды без записи в файл? - PullRequest
2 голосов
/ 22 января 2010

Windows XP

Мой пакетный файл запускает команду с несколькими строками вывода. Как я могу посчитать (и сохранить в переменной) строки вывода, не записывая их на диск?

Ответы [ 3 ]

3 голосов
/ 24 января 2010
dir | find /v /c "zzzxxx"

дает количество строк

2 голосов
/ 22 января 2010

Вот пример сценария, который будет считать строки в выводе команды 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

Вы можете заменить dir своей командой, а также использовать кавычки и указать параметры. Вам придется экранировать некоторые другие символы - ^, | < > и &.

Если вам нужно не только считать строки, но и анализировать каждую строку, вам, возможно, придется изменить разделитель токена с _ (как я использовал в примере) на что-то другое, что не приведет к разбиению строки в нескольких токенах.

0 голосов
/ 23 января 2010

и в это время вы также можете загрузить пакеты GNU (coreutils) для Windows и использовать инструмент wc: например,

dir | wc -l
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...