
Das von mir verwendete Batch-Skript enthält diesen Code:
@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
Hier ist, was die obigen Ausgaben in die Datei
11 12 13 . . . 98 99
Mein Problem besteht darin, dass ich in der Textdatei keine doppelten Zahlen oder Werte wie (11,22,33...) sehen möchte, wenn die Variablen der ersten und der zweiten Schleife identisch sind.
Ich kann findstr
einen Befehl in die Mischung einfügen (im Skript auskommentieren), um ihn in der zweiten neuen Textdatei zu filtern, aber ich möchte sehen, ob dies nur mit For-Schleifen möglich ist?
Ich meine, das echo. !X!
zeigt Ergebnisse an, die ich !X!
in eine weitere For-Schleife einfügen möchte, die prüft , ob es oder oder !X!
enthält ... Ich brauche es, um einfach diese Werte (dieselben) zu überspringen und mit den verbleibenden Werten in der Textdatei fortzufahren, die in beiden Schleifen nicht gleich sind.11
22
55
echo.
Antwort1
Natürlich können Sie einige einfache Bedingungssätze verwenden.IF NOT
und sagen Sie ihm, ob die erste FOR /L
Variable von %%a
gleich dem Wert der zweiten FOR /L
Variable von ist, %%b
um nichtecho
zur Ausgabedatei.
Ich habe auch die >>
Anfügeumleitung an echo
die %X%
Variable innerhalb der Schleife eingefügt, um sicherzustellen, dass sie wie erwartet an die richtigen Werte aus den Schleifen angefügt wird. Zusätzlich habe ich die anfängliche Logik oben eingefügt, IF EXIST newfile.txt DEL /Q /F newfile.txt
sodass sie, falls sie vor dem Lauf vorhanden ist, zuerst gelöscht wird.
@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
))