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

String mit variabler Länge auslesen

Frage Entwicklung Batch & Shell

Mitglied: crazyhoesl

crazyhoesl (Level 1) - Jetzt verbinden

22.04.2008, aktualisiert 23.04.2008, 4513 Aufrufe, 3 Kommentare

Hallo Ihr Lieben,

ich stehe vor folgendem Problem:

Ich möchte einen String aus einer Datei einen auslesen, der in Anführungszeichen steht. Also z.B.

01.
Heute ist "Marion" dran
Das >Heute ist< ist immer da, der Name/String ändert sich allerdings immer in Inhalt und Länge.

Und das >Marion< hätte ich gerne als Variable in einer Batch.


So nun weiß ich dass hier mir jemand wahrscheinlich eine Lösung mit tokens und delims aufzeigt - sofern mein Problem überhaupt lösbar ist - ich bitte aber auch um Erklärung, weil ich diese for /f - Schleifen und tokens und delims einfach nicht in meinen Schädel bringen will wie das funktioniert.

Besten Dank!
Mitglied: 54487
22.04.2008 um 17:11 Uhr
ich bitte aber auch um Erklärung, weil ich diese for /f - Schleifen und tokens und delims
einfach nicht in meinen Schädel bringen will wie das funktioniert.

Dazu druckst du dir Text in der Windows-Hilfe zum Suchbegriff "for" am besten einmal aus und liest das in eine ruhigen Stunde mal durch. Eigentlich ist das ganz gut erklärt.

Ausprobieren an selbst erzeugten Textdateien mit selbst zusammengefummelten Befehlszeilen ist m. E. immer noch der sicherste Weg zum Verständnis.
Bitte warten ..
Mitglied: bastla
22.04.2008 um 21:05 Uhr
Hallo crazyhoesl!

Dem Vorschlag von nachdenker schließe ich mich an ...

Zu diesem konkreten Fall kann ich Dich aber schon mal etwas beruhigen: es geht auch ohne die Angabe von "delims" - dies allerdings nur, wenn zwischen den Anführungszeichen tatsächlich immer nur ein Wort steht, da in diesem Fall das defaultmäßige Trennzeichen (engl. "delimiter") "Leerzeichen" verwendet werden kann:
01.
for /f "tokens=3" %%i in (Datei.txt) do set "Name=%%~i"
Aufgrund der Trennung durch Leerzeichen ist der gesuchte String der 3. Bestandteil ("token") der Zeile, und dieser steht zunächst als %%i zur Verfügung. Allerdings enthält diese Variable auch noch die umschließenden Anführungszeichen, welche durch die Schreibweise %%~i entfernt werden.

Grüße
bastla
Bitte warten ..
Mitglied: Biber
23.04.2008 um 12:48 Uhr
....sollte die Anforderung allerdings irgendwann dahingehend geändert werden,
dass wirklich ein "String in Anführungszeichen" an beliebiger Position innerhalb einer Zeile gesucht werden soll,
dann ist es lesbarer, als DELIMS etwas anders als Anführungszeichen zu verwenden.
Beispiel (nur am CMD-Prompt):
01.
>set "line=Heute ist "Klaus Maria" dran." 
02.
>set line 
03.
line=Heute ist "Klaus Maria" dran. 
04.
>FOR /F "delims=§ tokens=2" %i in ("%line:"=§%") do @echo Name: [%i] 
05.
Name: [Klaus Maria]
Wenn diese (eine) Zeile aus einer Datei gelesen werden soll, dann muss vorher %line% gesetzt werden mit
01.
>FOR /F "delims=" %i in (DranIs.txt) do set "line=%i" 
02.
-oder- 
03.
Set /P line=<DranIs.txt
Grüße
Biber
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Peripheriegeräte
Kontrolliertes auslesen von Speicherkarten (3)

Frage von -s-v-o- zum Thema Peripheriegeräte ...

Batch & Shell
gelöst String automatisch anpassen (erweitern oder kürzen) (9)

Frage von CreatorX zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch: Textdatei Zeilenweise auslesen (2)

Frage von CreatorX zum Thema Batch & Shell ...

VB for Applications
VBA Grenzwerte in String prüfen Regex ??? Excel2010 (3)

Frage von Chillministrator zum Thema VB for Applications ...

Heiß diskutierte Inhalte
TK-Netze & Geräte
gelöst Telefonanlage gesucht (39)

Frage von Xaero1982 zum Thema TK-Netze & Geräte ...

Windows Netzwerk
Anmeldung an Domäne schlägt oft fehlt (Fehlermeldung: falsches Passwort) (24)

Frage von harald.schmidt zum Thema Windows Netzwerk ...

Exchange Server
gelöst Wie freigegebenes Postfach immer als primäre Sendeadresse verwenden? (18)

Frage von Flinxit zum Thema Exchange Server ...

Microsoft Office
Outlook 2016 - Keine Mails sichtbar (nach Suche schon) (17)

Frage von Hirschix3 zum Thema Microsoft Office ...