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

Textverarbeitung per Batch - Trennzeichen einfügen

Frage Entwicklung Batch & Shell

Mitglied: hoomer

hoomer (Level 1) - Jetzt verbinden

24.02.2009, aktualisiert 04.03.2009, 7881 Aufrufe, 7 Kommentare

Hallo, ich bin neu in diesem Forum, habe ein Problem und hoffe das mir jemand helfen kann.

Als Datenaustausch zwischen 2 Systemen wird eine txt-Datei erzeugt die mehrere hundert Zeilen enthält, die wiederum alle exakt 64 Zahlen enthalten.

In diesem Zahlenblock, sind keinerlei Trennzeichen enthalten, die allerdings für den Import in das 2. System notwendig sind.

Nun ist die Frage wie ich, am besten in dem Batch-Skript, Trennzeichen (Semikolon) an definierbare stellen einfügen lassen kann.

Definierbar deshalb, weil die zu trennenden Blöcke unterschiedlich viele Zahlen enthalten, diese aber pro Zeile gleich sind.

Ich hoffe mich klar und verständlich ausgedrückt zu haben.

PS: Ich habe in diversen Foren, auch in diesem, gesucht - aber dieses Problem leider nirgends finden können und hoffe das mir hier jemand helfen kann.
Mitglied: bastla
24.02.2009 um 21:28 Uhr
Hallo hoomer und willkommen im Forum!

Schematisch (und ungetestet) etwa so (unter der Voraussetzung, dass alle Zeilen verarbeitet werden sollen und sich keine "!" in den Daten befinden):
01.
@echo off & setlocal enabledelayedwxpansion 
02.
set "Alt=D:\Datei.txt" 
03.
set "Neu=D:\Datei.csv" 
04.
 
05.
if exist "%Neu%" del "%Neu%" 
06.
for /f "usebackq delims=" %%i in ("%Alt%") do ( 
07.
    set "Z=%%i" 
08.
    >>"%Neu%" echo !Z:~0,8!;!Z:~8,5!;!Z:~13,8!;!Z:~21,4!;... 
09.
)
Die Zerlegung der Zeile (Variable !Z!) in Zeile 8 basiert auf der Angabe der Anzahl zu überspringender Zeichen (Offset) und der Anzahl zu verwendender Zeichen - siehe dazu die Onlinehilfe mit "set /?" (dort gezeigt für %PATH%).

Grüße
bastla
Bitte warten ..
Mitglied: hoomer
25.02.2009 um 08:27 Uhr
Perfekt - danke für die schnelle Hilfe!!!!!

Gruß

Hoomer
Bitte warten ..
Mitglied: hoomer
25.02.2009 um 12:34 Uhr
Ich muss dieses Thema nochmals aufgreifen.
Als ich also gerade voller elan dabei war dieses Skript zu implementieren habe ich vor lauter schreck (mangels Information) festgestellt das die exportierte Datei aus System1 an mehreren Stellen Leerzeichen enthält, diese müssen entfernt werden, sonst scheitert der Import in System2.
Nun ist es dank der Hilfe von - bastla - , dafür nochmals danke - so das eine sauber getrennte Datei vorliegt die in etwa folgendem Muster entspricht:

163654;1165; 361456;243213153;
Das Endergebnis, damit der Import erfolgreich funktioniert muss so aussehen
163654;1165;361456;243213153;

Ich hoffe das mir nochmal jemand helfen kann.

PS: Habe schon diverse dinge mit der Funktion findstr probiert, komme aber irgendwie nicht ganz klar damit.
Bitte warten ..
Mitglied: miniversum
25.02.2009 um 12:53 Uhr
Ändere die Zeile 8 um in diese beiden Zeilen:
01.
set z=!Z:~0,8!;!Z:~8,5!;!Z:~13,8!;!Z:~21,4!;... 
02.
>>"%Neu%" echo !Z: =!
miniversum
Bitte warten ..
Mitglied: hoomer
04.03.2009 um 07:50 Uhr
Ich habe diesen Beitrag zwar schon als gelöst markiert, muss dieses Thema jetzt aber nochmals aufgreifen.

Das jetzige Skript sie so aus

@echo off & setlocal enabledelayedexpansion
set "INPUT=C:\INPUT.txt"
set "OUTPUT=C:\OUTPUT.txt"
if exist "%OUTPUT%" del "%OUTPUT%"
for /f "usebackq delims=" %%i in ("%INPUT%") do (
set "Z=%%i"
set z=!Z:~0,8!;!Z:~8,5!;!Z:~13,8!;!Z:~21,4!;!Z:~25,20!;!Z:~45,69!;
>>"%OUTPUT%" echo !Z: =!)

funktioniert Klasse!

Jetzt hat sich noch als Problem ergeben das ich bestimmte Zahlenbereiche löschen muss, bzw. definieren muss das diese nicht mit in die Output.txt übernommen werden.
Als Beispiel sollen die Zahlen 13-20 der Input.txt übersprungen werden.

Ich hoffe das das mittels Skript möglich ist und das mir jemand sagen kann wie.

Besten dank an alle die sich dieses "gelösten" Problems nochmals annehmen.

hoomer
Bitte warten ..
Mitglied: bastla
04.03.2009 um 09:16 Uhr
Hallo hoomer!

Wenn Du mit "Zahlen" bestimmte Felder meinst, müsste es doch genügen, den entsprechenden Teil, etwa
!Z:~102,8!;
in der Zeile 8 weg zu lassen...

Grüße
bastla
Bitte warten ..
Mitglied: hoomer
04.03.2009 um 09:32 Uhr
Manchmal sitzt man vor einem Problem und kommt einfach nicht auf das naheligendste.

Klar, du hast ja recht.

Ich muss das o.g. Skript zunächst abwandeln, das Leerzeichen als Zeichen behandelt werden und das Ergebnis in einer Datei Zwischenspeichern. Damit habe ich eine Datei mit Leerzeichen, in der die definierten Blöcke nicht mehr erscheinen. Danach lasse ich das Skript über die zwischengespeicherte Datei laufen und fertig.

Super - DANKE.

hommer
Bitte warten ..
Ähnliche Inhalte
Datenbanken
MSSQL Dump Trennzeichen einfügen
gelöst Frage von 8digitDatenbanken6 Kommentare

Nabend, ich habe auf einem Server ein MS SQL Express 2008 R2 Datenbank laufen. Aufgrund der Express-Version kann ich ...

Batch & Shell
CSV- Trennzeichen per Batch ändern für deutsches Excel
gelöst Frage von leknilk0815Batch & Shell14 Kommentare

Servus, ich bastle nun schon länger an einer Möglichkeit rum, die Delims in einer CSV- Datei (Wetterdaten) vom englischen ...

Batch & Shell
Sonderzeichen in eine Batch automatisch einfügen
gelöst Frage von Dr.ByteBatch & Shell18 Kommentare

Hallo Admins, ich habe folgende Daten in über 500 Txt-Dateien stehen es sind aber auch andere links in der ...

Batch & Shell
Computerbeschreibung im AD per Batch einfügen
gelöst Frage von Fighter-01Batch & Shell3 Kommentare

Hallo an die Experten. Ich versuche, per Batch die Beschreibung von Computerkonten im AD zu ergänzen. Das Script ist ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 8 StundenViren und Trojaner1 Kommentar

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 12 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Vmware
DOS 6.22 in VMWare mit CD-ROM
gelöst Frage von hesperVmware8 Kommentare

Hallo zusammen! Ich hab ein saublödes Problem. Es ist eine VMWare mit DOS 6.22 zu erstellen auf dem ein ...

Cloud-Dienste
PIM als SaaS Nutzungsgebühr
Frage von vanTastCloud-Dienste8 Kommentare

Moin, wir haben uns ein PIM (Product Information Management) nach unseren Ansprüchen für viel Geld als SaaS-Lösung bauen lassen. ...