Angenommen, ich habe einen Wert wie "Abc_123", der in einer Variablen in einer Batch-Datei (cmd) gespeichert ist. Ich möchte mit einer Variablen enden, die nur "123" enthält. Gibt es eine eingebaute Möglichkeit, dies zu tun?
Ich bin nicht besonders wählerisch in Bezug auf die Methode oder Leistung, solange sie in ein typisches Windows-System (Vista / 2008) integriert ist.
help set
wie unter Was ist der beste Weg, um einen Teilstring in einer Batch-Datei zu erstellen? auf StackOverflow.%string:~%start%,%len%%
CALL
, wieCALL SET _substring=%%_donor:~%_startchar%,%_length%%%
Wenn Sie nur alles nach dem Unterstrich haben möchten (und nicht unbedingt die Länge der Zeichenfolge oder die Position des Unterstrichs kennen, sich aber darauf verlassen können, dass nur ein Unterstrich vorhanden ist), versuchen Sie Folgendes:
Grundsätzlich wird Ihre Zeichenfolge unter Verwendung des Unterstrichs als Trennzeichen in Token aufgeteilt (delims = _). Nur der zweite (Token = 2) wird (als Variable %% a) an die for-Schleife übergeben. Die Schleife wird nur einmal ausgeführt, da es sich in diesem Fall um eine einzelne Zeichenfolge handelt.
Wenn Sie das Material sowohl vor als auch nach dem Unterstrich speichern möchten, versuchen Sie Folgendes:
Beachten Sie, dass %% a die Variable für das erste Token des Split ist. %% b ist die Variable für das zweite Token des Split.
quelle
Wenn Sie feststellen, dass die Batch-Sprache nicht leistungsfähig genug ist, um das zu tun, was Sie möchten - und es wahrscheinlich nicht zu lange dauert, bis Sie diesen Punkt erreichen -, können Sie die Windows PowerShell verwenden . Dies ist nicht standardmäßig auf allen Windows-Versionen installiert, Sie können es jedoch kostenlos herunterladen.
Wenn Ihnen die PowerShell-Sprache nicht gefällt, gibt es Perl. Sie müssen dies jedoch auf allen Systemen installieren. Es gibt auch andere.
quelle
quelle
_
es gibt, dann schleifen Sie zum letzten, dannset var