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

Mitglied: hoomer

hoomer (Level 1) - Jetzt verbinden

24.02.2009, aktualisiert 04.03.2009, 7921 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
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 6 StundenWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 7 StundenSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Viren und Trojaner
Neue Avira Management Console Egosecure
Information von OSelbeck vor 1 TagViren und Trojaner1 Kommentar

Hallöchen zusammen, ich weiß nicht, wer von euch noch Avira einsetzt Wir haben ein paar Kunden Avira hatte ja ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 1 TagDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein Beitrag bei Heise (siehe Link folgend). Behörden ignorieren Sicherheitsbedenken gegenüber ...

Heiß diskutierte Inhalte
Exchange Server
Exchange Postfach Einbindung Betriebs-rat -Arzt, Bewerbung .
Frage von YellowcakeExchange Server15 Kommentare

Hey ich habe da mal eine Denksport Aufgabe bekommen Genutzt wird ein Exchange Server 2010. hier gibt es den ...

Datenschutz
Telematikinfrastruktur Erfahrungsaustausch
Frage von MOS6581Datenschutz12 Kommentare

Moin, unter meinen Kunden befinden sich auch einige Ärzte, welche sich künftig mit der Telematikinfrastruktur-Geschichte der Gematik herumärgern dürfen. ...

Windows Server
Delgegierte OU via RDP verwalten - Objektverwaltung zuweisen
gelöst Frage von TOAOICEWindows Server12 Kommentare

Hallo, ich habe folgendes Problem. Ich möchte in meiner Domäne (Server2016), einer Gruppe (OUAdmin) Berechtigungen auf die OU Test ...

Windows Server
Downgrade von Windows Server 2016 auf 2012 - Wie vorgehen?
Frage von EstefaniaWindows Server12 Kommentare

Guten Ich habe eine Frage an Erfahrene unter euch. Durch einen InPlace Upgrade wurde Windows Server 2012 auf die ...