Top-Themen

Aktuelle Themen (A bis Z)

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 In Textdatei zeilenweise ein Zeichen ersetzen und csv-Datei erzeugen

Mitglied: watchdogg

watchdogg (Level 1) - Jetzt verbinden

15.02.2009, aktualisiert 17.02.2009, 9257 Aufrufe, 4 Kommentare

Hallo Leute,
ich bin neu im Forum und noch relativ unerfahren in Sachen Batch Dateien.

Ich habe eine Textdatei mit mehreren hundert Zeilen in folgendem Format (Pipes sind nur als Spaltentrenner eigefügt):

00148 | 81.7 | 5.4 | 9.2 | 7.2 | 0.5 | 1.5 | 42 | 0 | 265 | 80.00 | 04:57:27 | 05:06:38 | 8 | 1001510 RA | 12.02.2009

1.Problem: Die 0 in Spalte 9 soll in jeder Zeile in eine 1 umgewandelt werden. Aber nur diese 0, die anderen nicht.
Mein Versuch über eine Zeichenkette in der Art: " 0 " -> " 1 ". klappt nicht. Hier der Code:

for /F "delims=" %%a in (quelle.txt) do (
set text=%%a
set text=text: 0 = 1 >>ziel.txt
)
Ist die Herangehensweise eigentlich richtig, oder gibt es andere Möglichkeiten?

2.Problem: Trennzeichen

Auf den ersten Blick scheinen sich Leerzeichen als Trenner anzubieten. Kann ich aber nicht nehmen weil Spalte 15 Leerzeichen enthalten kann und diese Spalte würde es mir ja auch trennen. Da ich diese Textdatei zeilenweise in eine Datenbank einlesen möchte, brauche ich aber eine Art CSV-Datei mit eindeutigen Trennzeichen.
Am liebsten wäre mir das Semikolon.

Lässt sich sowas per Batch realisieren, oder muss ich doch über Excel gehen?

Please Help ....?!?

[Edit Biber] Am 17.02.2009 auf "Gelöst" gesetzt. [/Edit]
Mitglied: blubberblase
15.02.2009 um 15:40 Uhr
Hier mal eine Loesung fuer dein Problem:

01.
for /F "tokens=1-9* delims=|" %%a in (quelle.txt) do ( 
02.
    if "%%i" equ " 0 " ( set temp= 1 ) else ( set temp=%%i) 
03.
    set temp=%%a^|%%b^|%%c^|%%d^|%%e^|%%f^|%%g^|%%h^|!temp!^|%%j 
04.
    ECHO !temp: ^| =;!>>ziel.txt 
05.
)
Ziele 02: ersetzen der 0 durch eine 1 in Spalte 9
Zeile 03: Zeile wieder zusammensetzen
Zeile 04: " | " durch ";" ersetzen und in Datei rausschreiben
Bitte warten ..
Mitglied: watchdogg
15.02.2009 um 20:31 Uhr
Danke erstmal an blubberblase,

Meine Quelldatei ist aber leider nicht mit Pipes als Trenner versehen, das hab ich nur zum verdeutlichen angegeben.
Meine Ausgangsdatei sieht so aus: http://anotherland.de/beispiel.txt.
Das macht das Problem schwieriger, oder? Denn die Spalten sind ja durch ein oder mehrere Leerzeichen getrennt.
Gibts dafür auch ne Lösung?

MfG watchdogg
Bitte warten ..
Mitglied: bastla
15.02.2009 um 22:16 Uhr
Hallo watchdogg und willkommen im Forum!
Das macht das Problem schwieriger, oder? Denn die Spalten sind ja durch ein oder mehrere Leerzeichen getrennt.
Eigentlich wird es einfacher, denn die Spalten sind zwar durch Leerzeichen getrennt, haben aber vor allem eine fixe Breite, anhand deren die Zerlegung erfolgen kann.

Unter der Annahme, dass in Spalte 9 immer eine "1" stehen soll, und dass die Leerzeichen bis zur Spalte 14 eigentlich nicht benötigt werden, könnte der Batch (welcher, ganz nebenbei, kein Beispiel für übertriebene Eleganz darstellt) so aussehen:
01.
@echo off & setlocal 
02.
set "Ein=D:\Ausgangsdatei.txt" 
03.
set "Aus=D:\Ergebnis.csv" 
04.
set "D=;" 
05.
 
06.
if exist "%Aus%" del "%Aus%" 
07.
for /f "usebackq delims=" %%i in ("%Ein%") do set "Z=%%i" & call :ProcessLine 
08.
goto :eof 
09.
 
10.
:ProcessLine 
11.
set "Zeile=%Z:~0,20%%D%%Z:~21,6%%D%%Z:~28,7%%D%%Z:~36,7%%D%%Z:~44,7%%D%%Z:~52,6%%D%%Z:~59,6%%D%%Z:~66,6%%D%1%D%%Z:~80,6%%D%%Z:~87,6%%D%%Z:~94,8%%D%%Z:~103,8%%D%%Z:~112,5%%D% 
12.
set "Zeile=%Zeile: =%" 
13.
set "Zeile=%Zeile%%Z:~118,15%%D%%Z:~134,8%%D%%Z:~143,7% 
14.
>>"%Aus%" echo %Zeile% 
15.
goto :eof
Das Trennzeichen für die neue Datei wird in Zeile 4 festgelegt.

Die Zeile 12 dient dazu, aus den ersten 14 Feldern alle enthaltenen Leerzeichen zu entfernen.

Soferne jede Zeile der Ausgangsdatei (wie in Deinem Beispiel) tatsächlich mit einem Leerzeichen beginnt, müsste in den Zeilen 11 und 13 jeder Wert nach einem "~" (=Startposition des Feldes) um 1 erhöht werden, also zB
set "Zeile=%Z:~1,20%%D%%Z:~22,6% ...
Grüße
bastla
Bitte warten ..
Mitglied: watchdogg
17.02.2009 um 07:18 Uhr
@bastla,

darf ich dich ab heute GOTT nennen.
Vielen Dank es funktioniert natürlich tadellos.

MfG watchdogg
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
HTML Dateien per CSV erzeugen
gelöst Frage von RechtschreibungBatch & Shell2 Kommentare

Hallo ich hoffe Ihr könnt mir helfen. Ich kenne mich grundlegend mit Batch Befehlen aus, aber das übersteigt ein ...

Batch & Shell

Per Batch Zeichen in Textdatei durch zeilenumbruch ersetzen

Frage von CreamyCewieBatch & Shell3 Kommentare

Hallo, ich habe folgende textdatei (test.txt) "þUEBERþNþSKZþBELþVARTþ3þaaþ5 þacþL þadþ20150385#umbr# UEBERþNþBELDATER" ich brauche nun ein Batch-Script welches mir die gesamte TXT-Datei ...

Batch & Shell

CSV-Datei Komma durch Semikolon ersetzen

gelöst Frage von FalkITBatch & Shell8 Kommentare

Hi Zusammen, ich suche eine Möglichkeit in einer Komma getrennten CSV Datei alle Kommas die als Trenner dienen durch ...

Batch & Shell

Textdatei zeilenweise in Variable schreiben

gelöst Frage von goodbytesBatch & Shell20 Kommentare

Hallo, mit einer Batch möchte ich mehrere Laufwerke mappen, abhängig vom Usernamen. Klar könnte ich auch für jeden User ...

Neue Wissensbeiträge
Vmware
VMware Update für den ESXi 5.5 verfügbar
Information von sabines vor 12 StundenVmware

Nach dem ganzen Hickhack um Update mit Microcode Anpassungen und Rückzug, gibt es nun für den ESXi 5.5 ein ...

CPU, RAM, Mainboards

Meltdown und Spectre: Intel zieht Microcode-Updates für Prozessoren zurück

Information von keine-ahnung vor 16 StundenCPU, RAM, Mainboards5 Kommentare

Moin, extrem lutztig. Nur gut, dass ich noch nicht beim Probanden-Bingo mitgemacht habe :-) LG, Thomas

Router & Routing
PfSense als Addon auf QNAP
Information von magicteddy vor 1 TagRouter & Routing7 Kommentare

Moin, für Spielereien eine ganz nette Idee aber ich fürchte das soetwas auch als echte Firewall genutzt wird: In ...

Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 1 TagDatenschutz1 Kommentar

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement26 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Server
TEMP-Profile
gelöst Frage von Forseti2003Windows Server21 Kommentare

Guten Morgen, wer kennt sie nicht, die lieben Temporären Benutzerprofile, vorallem immer dann, wenn man sie am wenigsten braucht. ...

Multimedia & Zubehör
Welches Tablet für die Verkäufer?
Frage von Hendrik2586Multimedia & Zubehör15 Kommentare

Guten Morgen meine Lieben, vielleicht könnt ihr mir ja helfen. Es geht um unsere Außendienstmitarbeiter /Verkäufer. Sie sollen demnächst ...

Ubuntu
Ubuntu - Routing mit 2 Netzwerkkarten?
Frage von gabrixlUbuntu13 Kommentare

Hei Folgende Situation: Ich habe zwei virtuelle Maschinen: 1 - Server für DHCP, DNS und Routing - Netzwerkkarte 1: ...