При запуске со спецификацией подстановочного знака ...*.txt
не удается
for /f %%C in ('Find /V /C "" ^< %SFTP_INDIR%\Location*.txt') do set count=%%C
Вышеприведенная команда не будет работать, потому что вы не можете перенаправить несколько файлов (спецификацию подстановочных знаков) в качестве входных данных для find
.
Следующая команда будет работать:
for /f %%C in ('Find /V /C "" %SFTP_INDIR%\Location*.txt') do set count=%%C
Однако я не думаю, что это даст вам результат, на который вы надеетесь.
Это потому, что ваша команда for /f
только первому токену в строке ----------
.
Как я могу получить количество строк в переменной?
Используйте следующий пакетный файл (test.cmd):
@echo off
setlocal
setlocal EnableDelayedExpansion
for /f "tokens=2 delims=:" %%c in ('Find /V /C "" *.txt') do (
set _count=%%c
set count=!_count:~1!
echo !count!
)
!count!
содержит количество строк в каждом соответствующем файле.
замените *.txt
собственным именем файла подстановки %SFTP_INDIR%\Location*.txt
count=!_count:~1!
убирает начальный пробел из _count
(есть начальный пробел, потому что мы используем :
в качестве разделителя для получения последней части каждой строки.
Пример вывода:
F:\test>test
5
2
7
5
39
39
75
1
5
0
11
5
F:\test>