michelausl
Goto Top

Batch - bitte um Hlfestellung

Hallo,

unsere TK-Anlage (3CX) übergibt eine Variable zum Öffnen externer Programme.
Die Variable (%1) sieht wie folgt aus "012345678:6123-Name des angerufenen"
Ist es möglich die vier Zahlen hinter dem Doppelpunkt (6123) zu filtern und als Variable an eine weitere Batch zu übergeben?

Ich habe noch nen 30€ Amazon Gutschein, den ich gerne für die Lösung spendiere.

Danke und viele Grüße
Michael

Content-Key: 579095

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

Printed on: April 26, 2024 at 22:04 o'clock

Member: Shadowminder
Shadowminder Jun 13, 2020 at 09:31:16 (UTC)
Goto Top
geht! ich mach mich ans werk

LG

Shadowmind
Member: Shadowminder
Shadowminder Jun 13, 2020 at 09:42:33 (UTC)
Goto Top
@echo off

::set var1=012345678:6123-Name_des_aufgerufenen

::auslesen der textdatei

FOR /f "usebackq" %%a IN (./1.txt) DO set var1=%%a  

::ausgeben einer neuen textdatei

echo %var1:~10,4% > 1new.txt

::ende

Hier. Ich gehe davon aus das die ersten Zahlen immer gleich lang sind, so kann man eine Stringoperation durchführen.

LG

Shadowmind
Member: MichelausL
MichelausL Jun 13, 2020 at 10:00:56 (UTC)
Goto Top
Hallo Shadowmind,

Erstmal danke. Asche auf mein Haupt. Leider sind die ersten Zeichen nicht immer gleich lang (hätte ich erwähnen müssen), da es sich um Telefonnummern handelt.
Konstant ist immer der ":" Die 4 Zeichen dahinter werden benötigt.

Gruß
Michael
Mitglied: 144260
Solution 144260 Jun 13, 2020 updated at 10:34:39 (UTC)
Goto Top
Moin.
@echo off
:: übergabe des ersten Parameters an for-Schleife
for /f "tokens=2 delims=:" %%a in ("%~1") do set "num=%%a"  
:: extrahieren der ersten 4 Zeichen des zweiten Tokens des For-Loops
set "num=%num:~0,4%"  
:: ausgabe der variable
echo %num%
:: Fuer eine weitergabe an eine andere Batch entfernst du das Kommentar der folgenden Zeile und aenderst den Pfad der aufzurufenden Batch
:: call "D:\andere_batch.cmd" "%num%"  
pause
Falls der Bindestrich immer hinter der Nummer kommt kannst du es hiermit auch noch etwas abkürzen
@echo off
:: übergabe des ersten Parameters an for-Schleife mit extraktion
for /f "tokens=2 delims=:-" %%a in ("%~1") do set "num=%%a"  
:: Ausgabe der Variable
echo %num%
:: Fuer eine weitergabe an eine andere Batch entfernst du das Kommentar der folgenden Zeile und aenderst den Pfad der aufzurufenden Batch
:: call "D:\andere_batch.cmd" "%num%"  
pause
Gruß k.
Member: MichelausL
MichelausL Jun 13, 2020 at 10:36:35 (UTC)
Goto Top
Hallo,

habe jetzt leider keine Zeit mehr es zu probieren, sieht aber gut aus. Falls ich noch Fragen habe melde ich mich morgen.

Natürlich stehe ich zu meinem Wort und sende euch beiden gleich jeweils einen Gutschein.

Besten Dank und ein schönes Wochenende.

Michael
Member: Shadowminder
Shadowminder Jun 13, 2020 at 11:50:04 (UTC)
Goto Top
killpid schick! Deine lösung ist auf das spliten der variable an der stelle von ":" ausgelegt. Das kann ich bestimmt noch woanders mit einbauen! Danke!

LG

Shadowmind
Member: MichelausL
MichelausL Jun 14, 2020 at 08:48:02 (UTC)
Goto Top
Guten Morgen,

kurze Rückmeldung: funktioniert perfekt!

Nochmals Danke und viele Grüße

Michael