setlocal EnableDelayedExpansion for /f %%C in ('Find /C "pdf" ^< %CD%\sample.txt') do set Count=%%C echo Found = !Count! time/s >> xerox.log echo Found = %%C time/s pause
C'est mon fichier batch. Il trouve et compte le mot "pdf" dans tout le fichier, mais il compte par ligne. Il ne compte pas toutes les occurrences. Comment puis-je compter tout cela?
Utilisez le fichier de commandes suivant.
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
par le nom de fichier contenant votre txt. echo."pdf" was found !_count! times.
echo."pdf" was found !_count! times.
Avec vos propres commandes d' echo
le cas échéant. Abc.txt
abc pdf def pdf pdf pdf pdf pdf abc def ghi
Exemple d'utilisation
F:\test>test "pdf" was found 6 times. F:\test>
abc.pdf def.pdf pdf pdf pdf pdf abc def ghi
t-il si le fichier txt est comme ceci abc.pdf def.pdf pdf pdf pdf pdf abc def ghi
Il compte seulement 4 Dans ce cas, la deuxième commande for /f
doit être modifiée pour utiliser les deux .
et (Par défaut) en tant que délimiteurs pour la correspondance.
Voici la ligne de rechange:
for /f "tokens=1,* delims=. " %%a in ("%_line%") do (
delims=.
a été ajouté.