
O script em lote que estou usando contém 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
Aqui está o que o resultado acima gera para o arquivo
11 12 13 . . . 98 99
Meu problema é que não quero ver os mesmos números ou valores duplicados como (11,22,33....), no arquivo de texto quando as variáveis do primeiro loop e do segundo loop são iguais.
Posso colocar findstr
o comando no mix (comentário no script) para filtrá-lo no segundo novo arquivo de texto, mas gostaria de ver se isso é possível usando apenas loops for?
Quero dizer que echo. !X!
está exibindo resultados que quero adicionar !X!
em outro loop for que verifica !X!
se contém 11
ou 22
ou 55
... Preciso apenas pular esses valores (os mesmos) e prosseguir com echo.
os valores restantes no arquivo de texto que não são os mesmos de ambos os loops.
Responder1
Claro, você pode usar algumas condicionais simplesIF NOT
e diga se a primeira FOR /L
variável de %%a
é igual ao valor da segunda FOR /L
variável de %%b
to notecho
para o arquivo de saída.
Também coloquei o >>
redirecionamento de acréscimo na echo
variável %X%
dentro do loop para garantir que ele seja anexado aos valores corretos dos loops conforme o esperado. Além disso, coloquei a lógica inicial no topo IF EXIST newfile.txt DEL /Q /F newfile.txt
para que, se existir antes da execução, seja excluída primeiro.
@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
))