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, 2924 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Humor (lol)
Der Unterschied zwischen USA und USB

Link von BirdyB zum Thema Humor (lol) ...

Windows Server
AD Replikation zwischen untergeordneten Domäne zwingend? (4)

Frage von Gien-app zum Thema Windows Server ...

Microsoft Office
Button für Wechseln zwischen den Tabellenblättern (6)

Frage von lupi1989 zum Thema Microsoft Office ...

Benchmarks
gelöst Unterschied zwischen +12V und 12V Netzteil für Festplatte (9)

Frage von FelixW zum Thema Benchmarks ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...