FINDSTR не работает с ERRORLEVEL в цикле for - PullRequest
0 голосов
/ 21 сентября 2019

Это мой код прямо сейчас

@echo off
if exist Files.tmp del /f /q Files.tmp
dir /b /s "D:\User\Desktop\Test\*.*">>Files.tmp
set "tempnum=0"
setlocal enableDelayedExpansion
for /f %%C in ('Find /V /C "" ^< Files.tmp') do set Count=%%C
for /F "tokens=1,* delims=: " %%j in (Files.tmp) do (
set /a "tempnum=!tempnum!+ 1"
cls
echo Scanning "%%j:%%k"
echo       Status: !tempnum! of !count! scanned
echo.
echo Detected;
if exist loggers.txt type loggers.txt
findstr /C:"test" "%%j:%%k"
if errorlevel 0 echo %%j:%%k>>loggers.txt
)
echo Done!
pause

Что этот скрипт должен делать, это находить любые файлы в папке, которая находится в команде dir, и выводить любые файлы, которые имеют строку "test" вих.Когда я тестирую его в командной строке, он работает, находит, и когда я набираю команду, он отображает строку в тестовом файле, а не остальные, но когда я запускаю пакетный скрипт, он просто выводит каждый файл в каталоге как обнаружение

Кто-нибудь знает почему?

1 Ответ

0 голосов
/ 21 сентября 2019

Мой комментарий одной строкой ответ:

@FindStr /SIMP "test" "D:\User\Desktop\Test\*.*">"loggers.txt"
...