
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 findstr
un 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 11
o 22
o 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 NOT
y decirle si la primera FOR /L
variable de %%a
es igual al valor de la segunda FOR /L
variable de %%b
noecho
al archivo de salida.
También puse la >>
redirección de adición a echo
la %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.txt
de 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
))