robe0480
Goto Top

Fehlern wenn String nicht gefunden wird

Moin Zusammen,

ich bin vor 4 Monaten vom CAD-User zur CAD-Administration gewechselt und darf mich seitdem mit Batch-Skripte beschäftigen. Nachdem ich zu vielen Themen schon Hilfe hier gefunden habe, komme ich jetzt nicht weiter.

Für einen automatischen Abgleich von Parametern zwischen CAD und ERP-System muss ich wissen, ob im CAD die richtigen Parameter gesetzt sind. Hierfür gibt es einen Export als .csv. Das auslesen der existierenden Parameter mit findstr klappt über eine For-Schleife ohne Probleme. Aber ich schaffe es nicht eine Fehlermeldung zur erhalten, wenn ein Parameter fehlt. Ich habe auch schon versucht, den Errorlevel auszuwerten oder den Variableninhalt auszulesen. "FINDSTR" überspringt die Suchstrings einfach, wenn nichts gefunden wird, daher funktioniert das leider nicht. Was das Ganze für mich noch schwieriger macht, ist die Tatsache das das mehrere Parameter geprüft werden müssen.
Das Auslesen der existierenden erfolgt mit folgendem Code:

for /f "delims=;. tokens=1,3" %%a in ('findstr "Para1 Para2 Para3 ... ParaX " parameter.txt') do (...

die Weiterverarbeitung klappt auch.

Mit dem Code (den ich im Netz gefunden habe):


schaffe ich es auch für einen Suchparameter eine Fehlermeldung zu erhalten, wenn der Parameter fehlt. Jetzt könnte ich das für jeden Parameter einzeln laufen lassen, aber je nach Anzahl der Parameter wird das unübersichtlich. Idealerweise würde ich das gerne in einer Schleife laufen lassen. Noch besser mit einer .txt as Input in der die notwendigen Parameter stehen.

Da ich hierzu nichts gefunden habe, kann ich leider auch keine Vorschläge Ideen meinerseits anbieten.

VG RoBe

Content-ID: 5629545043

Url: https://administrator.de/contentid/5629545043

Ausgedruckt am: 22.11.2024 um 02:11 Uhr

rubberman
rubberman 26.01.2023 um 20:12:58 Uhr
Goto Top
Ganz werde ich noch nicht aus deiner letzten Schleife schlau. Wie auch immer, Nummern hochzählen geht per FOR /L Schleife.
for /l %%i in (1,1,5) do (
  echo mach was mit Para%%i
)

Steffen
RoBe0480
Lösung RoBe0480 27.01.2023 um 13:43:45 Uhr
Goto Top
Hallo Steffen,

Danke für deine Hilfe. Ich hatte auch schon überlegt es mit einem Zähler zu verknüpfen und darüber auszuwerten ob alle Parameter vorhanden sind.

Meine zweite Schleife ist wie geschrieben ein Netzfund. Wie sie funktioniert, verstehe ich auch nicht so ganz, aber sie macht was sie soll und gibt eine Meldung aus, wenn ein Parameter nicht gefunden wird.

Letztendlich was es doch etwas einfacher. Ich habe die notwendigen in eine TXT-Datei geschrieben diese über eine vorgelagerte Schleife ausgelesen und an meine zweite Schleife übergeben. Dadurch kriege ich auch eine Ausgabe welcher Parameter fehlt.