I used code below
set var=mystringstring
echo %var%|find /c "str"
and it returned 2 as expected.
However, when I try to store it in a variable like
set var=mystringstring
set var= echo %var%|find /c "str"
it returned 0, and var remained mystringstring.
SETLOCAL EnableDelayedExpansion. The variable is then addressed as!var!.FINDcommand only counts occurrences once per line. Your code example only outputs one.