Je suis maintenant le plus gros problème je l'ai mentionné dans ce post ... Searching a text file and sending only numbers greater than a certain absolute value to text file?Comparez la valeur absolue d'un nombre dans une boucle for pour déterminer si elle doit être utilisée?
je me suis dit si je set num=!num:-=!
avec une valeur initiale de, disons, -17
, le !errorlevel!
évaluerai true ou 0
droit? Quelque chose ne fonctionne pas ici ...
Pour clarifier, je dois filtrer seulement les premier et quatrième jetons de lignes dans lesquels le quatrième jeton est soit supérieur à 3 ou inférieur à -3, ainsi que toutes les lignes qui n'a pas de 4ème jeton (cette partie est résolue). J'ai essayé d'utiliser l'option /A
de l'ensemble et il ne semble pas fonctionner encore.
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
Le texte print.log
ressemble:
KSDF 0 0 -4
as7d: S: asf 0 0 -4
kc: S: CD3 0 0 - 2
ASDK: s: s 0 0 6
la sd: S: dd 0 0
J'aime vraiment cette approche. Élégant! Merci @MC ND! – Glycoversi