dragos
Goto Top

Doppelpunkt aus Variable Batch entfernen DOS

Ich habe eine TXT Datei wo mit Inhalt

V:: => K:kk111
Y:: => C: est2
Z:: => C: est

In einer Variable wird folgener Wert aus der Datei übergeben "Z::"

und davon muss der zweite Doppelpunkt entfernt werden

so das am ende nur noch das in der Variable steht

"Z:"

nur hab ich leider keinen Plani wie ich das machen kann währe nett wenn mir da jemand eine Lösung geben kann


PS anführungszeichen sind nicht in der variable

Content-ID: 58174

Url: https://administrator.de/forum/doppelpunkt-aus-variable-batch-entfernen-dos-58174.html

Ausgedruckt am: 18.04.2025 um 08:04 Uhr

36539
36539 04.05.2007 um 01:40:11 Uhr
Goto Top
Hallo!
Übergebe die Variable in der von dir gewünschten Länge von 2 Zeichen an eine neue Variable.
set var=Z::
set var1=%var:~0,2% --> ergibt Z:
miniversum
miniversum 04.05.2007 um 07:48:57 Uhr
Goto Top
Oder alternativ:
set var=Z::
set var1=%var:::=:%

miniversum
Biber
Biber 04.05.2007 um 16:19:48 Uhr
Goto Top
Ich habe eine TXT Datei wo mit Inhalt
Andere Neuzugänge (und auch Stamm-User) hier im Forum beginnen ihren Beitrag je nach Herkunft und Uhrzeit in der aktuellen Zeitzone mit "Tach", "Hi", "Hallo", "Buenos tardes" oder "Kali Nichta".

Abgesehen davon wäre eine Rückmeldung nett.

Ich meine jetzt.
dragos
dragos 06.05.2007 um 15:29:39 Uhr
Goto Top
erstmal einen schönen Nachmittag

sorry Biber war schon früh am Morgen und ich wollte schlafen da hab ich wohl meine Mannieren vergessen


und ich hatte auch keine zeit gehabt mich damit weiter zu beschäftigen


der Lösungsforschlag von onegasee59 funtioniert recht gut nur hab ich leider das porblem die lösung in einer for schleife einzubinden


also wenn ich das so eingebe funktioniert das für den ersten Wert

FOR /f "tokens=1" %%f IN (subst.dat) DO set var=%%f

set var1=%var:~0,2%

ausgabe von CMD

C:\>FOR /F "tokens=1" %f IN (subst.dat) DO set var=%f

C:\>set var=V:\:

C:\>set var=Y:\:

C:\>set var=Z:\:

C:\>set var1=Z:

aber ich brauche das ja leider für jeden einzelnen Eintrag aus der Datei

alle meine Versuche dieses auch Automatisch hinzubekommen liefen leider absoltut garnicht

hat dort jemand von euch auch eine idee währe sehr nett

MfG dragos
miniversum
miniversum 06.05.2007 um 15:45:37 Uhr
Goto Top
Mach es so:
setlocal enabledelayedexpansion
FOR /f "tokens=1" %%f IN (subst.dat) DO set var=%%f
set var1=!var:~0,2!
miniversum
dragos
dragos 06.05.2007 um 16:28:45 Uhr
Goto Top
Danke für deine Antwort nur geht leider nicht da kommt den folgene Ausgabe


C:\>FOR /F "tokens=1" %f IN (subst.dat) DO set var=%f

C:\>set var=V:\:

C:\>set var=Y:\:

C:\>set var=Z:\:

C:\>set var1=!var:~0,2!

da habe ich leider das gleiche problem wie ich auch hatte das der irgendwie nicht kürzen tut und wenn ich das in klammern setze kommt folgendes


C:\>FOR /F "tokens=1" %f IN (subst.dat) DO (
set var=%f
set var1=!var:~0,2!
)

C:\>(
set var=V:\:
set var1=!var:~0,2!
)

C:\>(
set var=Y:\:
set var1=!var:~0,2!
)

C:\>(
set var=Z:\:
set var1=!var:~0,2!
Biber
Biber 07.05.2007 um 07:11:26 Uhr
Goto Top
Moin dragos,

erstmal danke für das Suchen und Wiederfinden Deiner guten Manieren... face-wink

Grundsätzlich sollte miniversums Skizze funktionieren - fehlt bei Dir eventuell das "Setlocal EnableDelayedExpansion"?
Aber egal, für Deine konkrete Problematik wäre es wahrscheinlich ohne diese DelayedExpansion noch lesbarer.

Skizze ( Non-DelayedExpansion-Variante von miniversums Schnipsel):
@echo off & setlocal
Set /a index=0
FOR /f "tokens=1" %%f IN (subst.dat) DO call :SetVarX %%f  
goto :eof
~~~ Raum für Notizen oder Kommentare ~~
:SetVarX
Set /a Index+=1
set "var=%1"  
set "var[Index]=%var:~0,2%"  
goto :eof
[...ungetestete Skizze]

Wenn also in der Subst.dat die drei Zeilen stünden:
Z:: ene
Y:: mene
Q:: miste
...dann sollten nach dem obigen Skripttorso drei Variablen lokal gesetzt sein:
var[1]=Z:
var[2]=Y:
var[3]=Q:

HTH Biber
dragos
dragos 07.05.2007 um 23:05:26 Uhr
Goto Top
oh das ist schoon mal ein guter ansatz ich werde gleich mal scheun ob ich das irgendwie umgebaut bekomme läuft noch nicht ganz
dragos
dragos 07.05.2007 um 23:19:12 Uhr
Goto Top
ausgezeichnet danke an euch allen so ist die lösung komplett

@echo on
Set /a index=0
FOR /f "tokens=1" %%f IN (subst.dat) DO call :SetVarX %%f
goto :eof
~~~ Raum für Notizen oder Kommentare ~~
:SetVarX
Set /a Index=%index%+1
set "var=%1"
set "var[%Index%]=%var:~0,2%"
goto :eof