Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Doppelpunkt aus Variable Batch entfernen DOS

Frage Entwicklung Batch & Shell

Mitglied: dragos

dragos (Level 1) - Jetzt verbinden

04.05.2007, aktualisiert 07.05.2007, 8682 Aufrufe, 9 Kommentare

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
Mitglied: onegasee59
04.05.2007 um 01:40 Uhr
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:
Bitte warten ..
Mitglied: miniversum
04.05.2007 um 07:48 Uhr
Oder alternativ:
set var=Z::
set var1=%var:::=:%

miniversum
Bitte warten ..
Mitglied: Biber
04.05.2007 um 16:19 Uhr
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.
Bitte warten ..
Mitglied: dragos
06.05.2007 um 15:29 Uhr
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

Mit freundlichen Grüßen dragos
Bitte warten ..
Mitglied: miniversum
06.05.2007 um 15:45 Uhr
Mach es so:
setlocal enabledelayedexpansion
FOR /f "tokens=1" %%f IN (subst.dat) DO set var=%%f
set var1=!var:~0,2!
miniversum
Bitte warten ..
Mitglied: dragos
06.05.2007 um 16:28 Uhr
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!
Bitte warten ..
Mitglied: Biber
07.05.2007 um 07:11 Uhr
Moin dragos,

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

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):
01.
@echo off & setlocal 
02.
Set /a index=0 
03.
FOR /f "tokens=1" %%f IN (subst.dat) DO call :SetVarX %%f 
04.
goto :eof 
05.
~~~ Raum für Notizen oder Kommentare ~~ 
06.
:SetVarX 
07.
Set /a Index+=1 
08.
set "var=%1" 
09.
set "var[Index]=%var:~0,2%" 
10.
goto :eof
[...ungetestete Skizze]

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

HTH Biber
Bitte warten ..
Mitglied: dragos
07.05.2007 um 23:05 Uhr
oh das ist schoon mal ein guter ansatz ich werde gleich mal scheun ob ich das irgendwie umgebaut bekomme läuft noch nicht ganz
Bitte warten ..
Mitglied: dragos
07.05.2007 um 23:19 Uhr
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
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (24)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...