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, 2954 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
Microsoft Office
gelöst Excel: Wenn Wert in Spalte A dann kopiere Zeile (8)

Frage von michi1983 zum Thema Microsoft Office ...

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

Frage von Nicolaas zum Thema Microsoft Office ...

Datenbanken
Mit sql eine Zeile einfügen, select und feste Werte (9)

Frage von helmuthelmut2000 zum Thema Datenbanken ...

Neue Wissensbeiträge
Linux Netzwerk

Ping und das einstellbare Bytepattern

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(3)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
SAN, NAS, DAS
MSA 2050 RAID Konfig (21)

Frage von Leo-le zum Thema SAN, NAS, DAS ...

Netzwerkmanagement
Windows Server 2008 R2: "netsh reset" nicht verfügbar? (10)

Frage von RickTucker zum Thema Netzwerkmanagement ...

Netzwerkmanagement
Suche eine Software für Cloudverwaltung (6)

Frage von tsunami zum Thema Netzwerkmanagement ...

Google Android
Musik Wiedergabe am PC mit Smartphone über Bluetooth steuern (5)

Frage von justlukas zum Thema Google Android ...