до IF дело не доходит, дело во втором For. Если нет совпадений - ничего не проверяется, так как не выполняется условие второго цикла. А я хочу этот момент обойти, но не знаю - как. Чувствую - что через %errorlevel% вместо второго цикла. А вот с подробностями - запара, так как изменения %errorlevel% в конструкции вида
Код:

For /F "tokens=8" %a in (o:\sec.txt) do (find "%a" o:\fin.txt & if "%errorlevel%" == "1" echo %a >> o:\fin.txt)
запаздывает на одну интерацию цикла, что лишает его использование смысла...