Es gibt keine Weise, FÜR Befehl zu erklären, nachfolgende delims nicht als einzelnes delim zu behandeln. Die Weise, die ich gewöhnlich um dieses bearbeite, ist, „vor die Eingangslinie zu verarbeiten“ und Paaren nach delims mit nichts zwischen ihnen zu suchen. Ich ersetze diese durch etwas zwischen den delims, die ich auf im Code dann überprüfen und als fehlender oder leerer Wert behandeln kann.
So, wenn die Eingangslinie war
aaa, bbb
Und ich möchte 4 Werte eher als die 2 verarbeiten, denen FÜR Willensaufnahme durch Rückstellung, dann ich zuerst umwandeln die Linie zu
aaa, @, @, bbb
und das in FÜR dann einziehen und auf Komma analysieren.
Ich anbringe den Code mit dieser Änderung, lasse mich kann h, sie für Sie geht. Ich vornahm ein paar andere kleine Justagen, lasse mich weiß ch, welche Fragen Sie haben.
- erforderlich das setlocal EnableDelayedExpansion addieren, damit ich eine Variable innerhalb einer Schleife aktualisieren und verwenden konnte
- definierte den Eingangsdateinamen als Variable und veranschlug ihn in der Hauptleitung FÜR den liest es, um den Fall zu behandeln, in dem der Dateiname Räume umfassen könnte
- das äußere FÜR Schleife liest die gesamte Linie, dann zuweisen wir das einer Variable s, damit wir können die „leeren“ Werte durch einen Placeholder (mich verwendete @, könnte aller sein, den Sie mögen), ersetzen
- dann analysiert anders FÜR ganz wie Ihr ursprüngliches die resultierende Schnur und benennt die Subroutine
- Ich hinzufügte ein ECHO des inputline Echo, bevor und nachdem die Umwandlung, die gerade so Sie sehen können, wie es funktioniert, diese, entfernt später
Hoffen, dass dieses hilft
~bp