Теперь я столкнулся с более серьезной проблемой, о которой я упоминал в этом сообщении... Поиск в текстовом файле и отправка в текстовый файл только чисел, превышающих определенное абсолютное значение?
Я подумал, что если я set num=!num:-=!
с исходным значением, скажем, -17
, то !errorlevel!
будет оцениваться как true или 0
правильно? Хотя что-то здесь не работает...
Для уточнения мне нужно отфильтровать только первые и четвертые токены строк, в которых четвертый токен либо больше 3, либо меньше -3, а также любые строки, в которых нет 4-го токена (эта часть решена) . Я попытался использовать параметр set /A
, но он все еще не работает.
setlocal enabledelayedexpansion
set "min=-"
for /f "tokens=1,4" %%a in ('findstr /b /r /c:"[^ ]*:S:" print.log') do (
if %%b=="" (echo %%a ^*^*^* >>new.txt) else (
set num="%%b"
set num=!num:-=!
if !errorlevel!==0 (
if !num! GTR 3 echo %%a !min!!num! >> new.txt
) else (
if !num! GTR 3 echo %%a !num! >> new.txt
)
)
)
exit /b
Текст в print.log
выглядит так:
ксдф 0 0 -4
as7d:S:asf 0 0 -4
kc:S:cd3 0 0 -2
asdk:S:s 0 0 6
лад:S:дд 0 0