Imprima valores usando un bucle for pero filtre ciertos valores sin el comando findtr

Imprima valores usando un bucle for pero filtre ciertos valores sin el comando findtr

El script por lotes que estoy usando tiene este código:

@echo off & setLocal enableDELAYedeXpansioN

for /L %%a in (0 1 10) do (
for /L %%b in (1 1 10) do (
set X=%%a%%b
echo. !X!
)) >>newfile.txt

rem ----> findstr /V "11 22 33 44 55 66" ABCD.txt > outfile.txt

Esto es lo que lo anterior genera en el archivo.

11
12
13
.
.
.
98
99

Mi problema es que no quiero ver los mismos números o valores duplicados como (11,22,33....), en un archivo de texto cuando las variables del primer bucle y del segundo bucle son iguales.

Puedo poner findstrun comando en la mezcla (comentar en el script) para filtrarlo en un segundo archivo de texto nuevo, pero me gustaría ver si esto es posible simplemente usando bucles for.

Quiero decir que echo. !X!se muestran resultados. Quiero agregar !X!otro bucle for que verifique !X!si contiene 11o 22o 55... Necesito que simplemente omita esos valores (los mismos) y continúe con echo.los valores restantes en el archivo de texto que no son los mismos. de ambos bucles.

Respuesta1

Claro, puedes usar algún condicional simple.IF NOTy decirle si la primera FOR /Lvariable de %%aes igual al valor de la segunda FOR /Lvariable de %%bnoechoal archivo de salida.

También puse la >>redirección de adición a echola %X%variable dentro del bucle para garantizar que se agregue a los valores correctos de los bucles como esperaba. Además, puse la lógica inicial en la parte superior, IF EXIST newfile.txt DEL /Q /F newfile.txtde modo que si existe antes de la ejecución, se elimina primero.

@ECHO ON
setlocal enabledelayedexpansion

IF EXIST newfile.txt DEL /Q /F newfile.txt
for /L %%a in (0 1 10) do ( 
    for /L %%b in (1 1 10) do ( 
        IF NOT %%a==%%b set X=%%a%%b
        echo. !X! >>newfile.txt
)) 

Salida de ejemplo


Recursos adicionales

información relacionada