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, 4516 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 ..
Ähnliche Inhalte
Batch & Shell
String Zeichenpaare auslesen und bearbeiten (6)

Frage von ahstax zum Thema Batch & Shell ...

Windows Userverwaltung
Mit Powershell am AD Controller die aktiven Usersessions auslesen (1)

Frage von arduino zum Thema Windows Userverwaltung ...

Windows Installation
gelöst Vorinstalliertes Betriebssystem auslesen (BIOS) (14)

Frage von Yauhun zum Thema Windows Installation ...

Batch & Shell
gelöst String in TXT suchen, überprüfen und wenn noetig aendern ? (4)

Frage von buliwyf zum Thema Batch & Shell ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
iOS
16 iPads zentrall verwalten (18)

Frage von simonlohr zum Thema iOS ...

Viren und Trojaner
Ransomware .nm4 (15)

Frage von Zyklo92 zum Thema Viren und Trojaner ...

Windows 7
Freeware MSI Tool (13)

Frage von uridium69 zum Thema Windows 7 ...

Microsoft Office
gelöst VBA Excel Problem mit UserForm, ListBox und TextBox (12)

Frage von abuelito zum Thema Microsoft Office ...