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-Key: 58174

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

Printed on: April 24, 2024 at 13:04 o'clock

Mitglied: 36539
36539 May 03, 2007 at 23:40:11 (UTC)
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:
Member: miniversum
miniversum May 04, 2007 at 05:48:57 (UTC)
Goto Top
Oder alternativ:
set var=Z::
set var1=%var:::=:%

miniversum
Member: Biber
Biber May 04, 2007 at 14:19:48 (UTC)
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.
Member: dragos
dragos May 06, 2007 at 13:29:39 (UTC)
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
Member: miniversum
miniversum May 06, 2007 at 13:45:37 (UTC)
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
Member: dragos
dragos May 06, 2007 at 14:28:45 (UTC)
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!
Member: Biber
Biber May 07, 2007 at 05:11:26 (UTC)
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
Member: dragos
dragos May 07, 2007 at 21:05:26 (UTC)
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
Member: dragos
dragos May 07, 2007 at 21:19:12 (UTC)
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