Как мне найти все вхождения слова "pdf" в файле?
Используйте следующий пакетный файл.
test.cmd
@echo off
setlocal
setlocal EnableDelayedExpansion
set _count=0
set _match=pdf
set _file=abc.txt
for /f "tokens=*" %%i in (%_file%) do (
set _line=%%i
call :match
)
goto :done
:match
for /f "tokens=1,*" %%a in ("%_line%") do (
set _word=%%a
set _line=%%b
)
if /i "%_word%"=="%_match%" set /a _count=!_count!+1
if "%_line%"=="" goto :eof
goto :match
:done
echo."pdf" was found !_count! times.
endlocal
- Замените
abc.txt
именем файла, содержащим ваш текст.
- Заменить
echo."pdf" was found !_count! times.
с вашими собственными echo
командами в зависимости от ситуации.
abc.txt
abc pdf def pdf
pdf
pdf pdf pdf
abc def ghi
пример использования
F:\test>test
"pdf" was found 6 times.
F:\test>
Что делать, если TXT-файл похож на это abc.pdf def.pdf pdf pdf pdf pdf abc def ghi
Это только 4
В этом случае необходимо изменить вторую команду for /f
чтобы использовать оба .
а также
(по умолчанию) в качестве разделителей для сопоставления.
Вот линия замены:
for /f "tokens=1,* delims=. " %%a in ("%_line%") do (
delims=.
был добавлен.
дальнейшее чтение