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

for auf Zeilen in denen Kein Wert zwischen Delimitern steht

Frage Entwicklung Batch & Shell

Mitglied: jschneider

jschneider (Level 1) - Jetzt verbinden

25.05.2009, aktualisiert 11:12 Uhr, 2951 Aufrufe, 2 Kommentare

Hallo,


ich habe eine Ausgangsdatei auf deren Aufbau ich keinen Einfluss habe. Diese kommt in etwa so:


Bitte (aufeinanderfolgende) Delimiter beachten
01.
Name;Vorname;;Emailadresse;Kennwort;;;;;;;Stadt
oder so
01.
Name;Vorname;Professor;Emailadresse;Kennwort;;Abteilung;;;;;Stadt
in einer For /F - Schleife werden nur die Strings ausgewertet die einen Wert haben.
Da sich jedoch nie ganz genau sagen lässt welche Werte gefüllt sind muss ich alles in Variablen packen, auch Strings die eigentlich keinen Inhalt haben



Konnte ich mich begreiflich ausdrücken ? geht das irgendiwe ?



Gruß, Jan
Mitglied: LotPings
25.05.2009 um 11:23 Uhr
Hallo Jan.

Dann werte doch die Zeile nicht direkt aus, sondern mach vorher eine Ersetzung

01.
@echo off 
02.
setlocal EnableDelayedExpansion 
03.
For /f "Delims=" %%A in ( wasauchimmer) Do set "Zeile=%%A"& for %%B in ("!Zeile:;=" "!") do echo %%~B
Ansonsten müsstest du schon ein etwas ausführlicheres Beispiel geben.

Gruß
LotPings
Bitte warten ..
Mitglied: jschneider
25.05.2009 um 12:02 Uhr
Zitat von LotPings:
Hallo Jan.

Dann werte doch die Zeile nicht direkt aus, sondern mach vorher eine
Ersetzung


Hallo LotPings,

auf die Idee bin ich gar nicht gekommen. Danke dir hierfür.

letzendlich nutze ich nun folgenden Code, den ich passend für meine Anforderung auch hier im Forum gefunden habe. . .

01.
@echo off & setlocal enabledelayedexpansion 
02.
set "Datei=D:\Test.txt" 
03.
set "t=D:\Temp.tmp"  
04.
 
05.
set "Suchen1=;;" 
06.
set "Ersetzen1=;-;" 
07.
set "Suchen2=;;" 
08.
set "Ersetzen2=;-;" 
09.
 
10.
if exist "%t%" del "%t%" 
11.
for /f "delims=" %%i in ('findstr /n $ "%Datei%"') do set "Line=%%i" & call :ProcessLine 
12.
 move "%t%" "%Datei%" 
13.
goto :eof 
14.
 
15.
:ProcessLine 
16.
for /f "tokens=1* delims=:" %%a in ("%Line%") do set "L=%%b" 
17.
if not defined L >>"%t%" echo\& goto :eof 
18.
set WriteLine1=!L:%Suchen1%=%Ersetzen1%! 
19.
set WriteLine2=!WriteLine1:%Suchen2%=%Ersetzen2%! 
20.
>>"%t%" echo !WriteLine2! 
21.
goto :eof 
22.
 
Bitte warten ..
Ähnliche Inhalte
Netzwerke
gelöst Komisches Außergewöhnliches Netzwerkproblem - kein Ping zwischen zwei APs (17)

Frage von itschloegl zum Thema Netzwerke ...

Router & Routing
gelöst PFsense - Netzverbindung steht, aber kein Internet vorhanden (45)

Frage von aschmid zum Thema Router & Routing ...

Microsoft Office
gelöst Excel: Wert aus mehreren Zeilen vergleichen (2)

Frage von Nicolaas zum Thema Microsoft Office ...

Batch & Shell
gelöst Wert aus batch in externe txt-Datei oder Zwischenablage? (5)

Frage von Yannxck1 zum Thema Batch & Shell ...

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

Frage von simonlohr zum Thema iOS ...

Viren und Trojaner
Ransomware .nm4 (15)

Frage von Zyklo92 zum Thema Viren und Trojaner ...

Zusammenarbeit
Administrator Verhalten nach Vertragskündigung (13)

Frage von sysbone zum Thema Zusammenarbeit ...

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

Frage von abuelito zum Thema Microsoft Office ...