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

Frage Entwicklung Batch & Shell

GELÖST

Bestimmtes Zeichen durch Seitenumbruch ersetzen per Batch

Mitglied: MarkusLB

MarkusLB (Level 1) - Jetzt verbinden

18.03.2011 um 16:45 Uhr, 9182 Aufrufe, 9 Kommentare

Da ich hier neu bin erstmal an alle: Hallo zusammen.

Leider hat mir die bisherige Suche in diesem Forum nicht weitergeholfen, daher meine Frage:

Ich habe eine csv-Datei, in der leider alle Einträge nur per [] getrennt sind, sofern ich diese per Editor aufrufe. Dieses [] möchte ich gerne durch einen Seitenumbruch ersetzen, damit jeder Eintrag als eigene Zeile angezeigt wird.
Wie mache ich das?

Hinweis: Ich kann die Datei nicht mit Excel o.ä. aufrufen und speichern, da die Konvertierung nachts automatisch geschehen soll, damit die Datei nachts von einem anderen System weiterverarbeitet werden kann.

Aufbau der Datei:
Spalte1,Spalte2,Spalte3[]Spalte1,Spalte2,Spalte3[] usw.

Ich habe schonmal was programmiert, aber das funktioniert leider nicht, da ich den String nicht kenne.

echo Setzen der Variablen
set "filename1=Datei1.csv-*"
set "filename2=Datei1-org.csv"
set "filename3=Datei1-bearb.csv"
set "filename4=Datei1.csv"

echo Fuege Seitenumbrueche ein

setlocal enabledelayedexpansion

for /F "delims=" %%a in (%filename2%) do (
set text=%%a
set text=!text:^[]=XXX! <- was muss ich für das XXX einsetzen?
echo !text!>>%filename3%
)
Mitglied: bastla
18.03.2011 um 17:08 Uhr
Hallo MarkusLB und willkommen im Forum!

Sofern es keine heftigen Einwände gegen VBScript gibt, würde ich in diesem Fall darauf zurückgreifen (dann klappt's zB auch mit richtig großen Dateien):
01.
Ein = "Datei1-org.csv" 
02.
Aus = "Datei1.csv" 
03.
 
04.
Set fso = CreateObject("Scripting.FileSystemObject") 
05.
fso.CreateTextFile(Aus).Write Replace(fso.OpenTextFile(Ein).ReadAll, "[]", vbCrLf)
Bei Bedarf lassen sich die Dateinamen auch als Parameter übergeben ...

Es werden übrigens durch dieses Script Zeilen-, nicht Seitenümbrüche eingefügt ...

Grüße
bastla
Bitte warten ..
Mitglied: jeb-the-batcher
18.03.2011 um 19:43 Uhr
Hallo MarkusLBS,

oder einfach
01.
set text=!text:^[]=^ 
02.
 
03.
!
Die Leerzeile ist wichtig (sollte auch wirklich leer sein).

Klappt aber auch nur, wenn die Zeilen nicht zu lang sind (max ~8192 Zeichen)

Gruß
jeb
Bitte warten ..
Mitglied: Itow15
14.04.2011 um 11:09 Uhr
Hallo Zusammen ;)

Ich hoffe ihr und besonders jeb-the-batcher könnt mir auch erfolgreich helfen.

Aufgabe:

Eine txt-Datei Zeilenweise einlesen und bestimmte Zeichen löschen bzw. durch ein Absatz(Enter) ersetzen.

Inhalt der neu.txt:

b 28 xyz b 38 xyz b 48 xyz
b 28 xyz b 38 xyz b 48 xyz
b 28 xyz b 38 xyz b 48 xyz

Das soll dann in der test.txt wie folgt aussehen:

xyz
xyz
xyz
xyz
usw.…

Quasi alles schön untereinander anstatt nebeneinander
Hier nun mein Lösungsansatz (den ich mir zusammen kopiert habe …)

01.
  
02.
@ECHO 
03.
SETLOCAL enabledelayedexpansion 
04.
 
05.
SET "quell_datei=neu.txt" 
06.
SET "ziel_datei=test.txt" 
07.
 
08.
REM Loeschen der Ausgabedatei, falls sie (noch) existiert 
09.
IF EXIST %ziel_datei% (DEL /f %ziel_datei% 1>NUL 2>NUL) 
10.
 
11.
REM Quell-Datei zeilenweise auslesen 
12.
REM und in Variable "zeile" schreiben 
13.
FOR /f "delims=" %%i IN ('FINDSTR . "%quell_datei%"') DO ( 
14.
SET zeile=%%i& CALL :ersetzen !zeile!) 
15.
GOTO :weiter 
16.
:ersetzen 
17.
SET zeile=!zeile:b 28 =! 
18.
SET zeile=!zeile:b 38 =! 
19.
SET zeile=!zeile:b 48 =! 
20.
SET zeile=!zeile:^ =^ 
21.
 
22.
23.
 
24.
REM Inhalt der Variable "zeile" in die Ausgabedatei schreiben 
25.
IF [!zeile!] EQU [] (ECHO.>>%ziel_datei%) ELSE (ECHO !zeile!>>%ziel_datei%) 
26.
GOTO :eof 
27.
 
28.
:weiter 
29.
 
30.
pause
Das funktioniert soweit auch alles ganz gut die b 28 , b38 und b 48 werden entfernt nur wenn es daran geht das Leerzeichen durch ein Zeilenumbruch(Enter) zu ersetzen löscht er alle Leerzeichen so das alles zusammen steht

Ich hoffe ihr könnt mir helfen ich bin hier schon fast am Verzweifeln und bedanke mich bei jeden der mir weiter helfen kann

Gruss Itow
Bitte warten ..
Mitglied: jeb-the-batcher
14.04.2011 um 11:24 Uhr
Hallo Itow,

ich denke schon, dass das Problem lösbar ist, allerdings solltest du erst mal eine neue Frage daraus machen(ist ja auch eine andere Frage als vorher), sonst sehen nur die Leute den Thread die dir beim ersten mal geantwortet haben

jeb
Bitte warten ..
Mitglied: 99045
14.04.2011 um 11:25 Uhr
Hallo,

mit einer Leerzeile kannst du keinen Seitenvorschub erzeugen. Aber mach dir nichts draus, jtb hat immer solche irren Vorschläge.

Das Steuerzeichen für Seitenvorschub ist ^L (STRG-L). Ab besten änderst du deine Textdatei mit einem Editor, der dir die Eingabe von Steuerzeichen ermöglicht.
Vielleicht hat ja bastla eine bessere Lösungsmöglichkeit mit VBscript parat.


Gruß
Bitte warten ..
Mitglied: bastla
14.04.2011 um 11:31 Uhr
@99045
Wenn doch jedes "xyz" (von dem wir allerdings sehr wenig wissen, insbes, ob es selbst Leerzeichen enthält) in eine neue Zeile soll, wäre ja
for %%i in (!zeile!) do >>%ziel_datei% echo %%i
der einfachste Ansatz ...
Aus "sportlichen Gründen" verzichte ich (vorläufig ) auf VBS ...

Grüße
bastla

P.S.: @--Itow--
Willkommen im Forum! Falls der Ansatz noch nicht genügt, unterstütze ich jebs Vorschlag, einen neuen Thread zu beginnen ...
Bitte warten ..
Mitglied: jeb-the-batcher
14.04.2011 um 11:45 Uhr
Zitat von 99045:
mit einer Leerzeile kannst du keinen Seitenvorschub erzeugen. Aber mach dir nichts draus, jtb hat immer solche irren
Vorschläge.

@99045

Er hat es auch nicht mit einem Leerzeichen versucht.

01.
SET zeile=!zeile:^ =^ 
02.
 
03.
!
Ersetzt offensichtlich Leerzeichen durch Zeilenvorschübe.

jeb
Bitte warten ..
Mitglied: 99045
14.04.2011 um 11:47 Uhr
@jtb
Verschone mich bitte zukünftig mit deinen geistigen Ergüssen und verteile deine Gunst bitte an andere, ja?
Danke.
Bitte warten ..
Mitglied: Itow15
14.04.2011 um 11:51 Uhr
Vielen vielen Dank euch es funktioniert ich bin so glücklich xD

Besondere Dank geht an bastla ;)

habe einfach

IF [!zeile!] EQU [] (ECHO.>>%ziel_datei%) ELSE (ECHO !zeile!>>%ziel_datei%)

mit

for %%i in (!zeile!) do >>%ziel_datei% echo %%i

ersetzt und schon funktioniert es da wäre ich nie drauf gekommen

vielen vielen dank

Gruß Itow

/edit

habe auch die

SET zeile=!zeile:^ =^

!

entfernt hat ich in der aufregung vergessen nochmal danke ;)
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Tilde Zeichen per Batch ersetzen
gelöst Frage von Blackhawk386Batch & Shell6 Kommentare

Hi! Ich habe eine Datei in Textform, in der Umlaute per Batch umgewandelt werden müssen. Dazu habe ich hier ...

Batch & Shell
In txt file an bestimmter Position zeichen ersetzen, Ideen ?
gelöst Frage von buliwyfBatch & Shell7 Kommentare

EIn freundl. Hallo all ;-) mein Anliegen was mich jetzt 2 Tage beschaeftigt ist : wie kann ich in ...

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 ...

VB for Applications
VBScript: Hexwert durch Zeichen (String) ersetzen
gelöst Frage von GurkenhobelVB for Applications12 Kommentare

Hallo Gemeinde, ich benötige wieder einmal Euer sachkundiges Expertenwissen. Und zwar möchte ich ältere Textdokumente (erstellt um 2000, evtl. ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 1 TagLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 2 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 2 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 2 TagenSicherheit10 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Batch & Shell
Meltdown Microsoft Prüf Script - .zip Datei leider leer
gelöst Frage von MasterBlaster88Batch & Shell13 Kommentare

Hallo zusammen, ich patche gerade unsere Windows Server bzgl. der Meltdown Lücke. Patch vorhanden, Reg Keys gesetzt Um das ...

Batch & Shell
Shell-Skript - Syntax error: Unterminated quoted string
Frage von newit1Batch & Shell13 Kommentare

Hallo Ich schreibe ein Skript das eine CSV-Datei in eine mySQL Datenbank schieben soll. Bekomme nach start des Skrips ...

E-Mail
Erfahrungen mit hMailServer gesucht
Frage von it-fraggleE-Mail10 Kommentare

Hallo, meine neue Stelle möchte einen eigenen Mailserver. Ich als Linuxkind war direkt geistig mit Postfix dabei. Leider wollen ...

Windows Server
DNS Forwarding an andere Domäne
Frage von detox91Windows Server9 Kommentare

Hallo, für Testzwecke haben wir bei uns eine zweite Windows Domäne (B.local) aufgebaut, welche komplett unabhängig und isoliert der ...