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 TXT Datei verändern und neu speichern per Batch (Teil3)

Mitglied: reinhr

reinhr (Level 1) - Jetzt verbinden

23.10.2007, aktualisiert 17:35 Uhr, 4104 Aufrufe, 2 Kommentare

Hallo Leute,

folgender Code löst unten stehendes Problem:

01.
@echo off & setlocal 
02.
set "PadTemp=%temp%\Pad.vbs" 
03.
set "Quelle=C:\Live\00000*.txt" 
04.
set "Ziel=C:\Live" 
05.
set "Neu=Neu-" 
06.
echo Breite=Array(5,5,10,5,5,5,8)>"%PadTemp%" 
07.
 
08.
echo Felder=Split(CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0),1).ReadAll,"|")>>"%PadTemp%" 
09.
echo For i=0 To UBound(Felder):Zeile=Zeile^&Left(Trim(Felder(i))^&Space(Breite(i)),Breite(i)):Next:WScript.Echo Zeile>>"%PadTemp%" 
10.
for %%i in ("%Quelle%") do cscript //nologo "%PadTemp%" "%%i" >"%Ziel%\%Neu%%%~nxi%" 
11.
del "%PadTemp%"
Ettliche Transaktionsdateien welche täglich in ein Verzeichnis kopiert werden
(00000001.TXT bis 0000000N.TXT) haben folgenden Inhalt.

Dateiinhalt ist jeweils eine Zeile
0815|2612| 1 | 4 | 21 | 18|23.10.2007 13:40:33

nach der Konvertierung

Der Delimiter "|" wurde gelöscht und durch variable Feldbreiten ersetzt.
Das Ergebnis mit obigen Code:
0815-2612-1---------4----21---18---23.10.20
Die Bindestriche sind nur zum verdeutlichen da. In der neuen Datei sind sie nicht.

Neues Problem:
1. Problem
Der 3. Wert stellt eine Stückzahl dar. Es soll immer .00 angehängt werden.
2. Problem
Der 7. Wert stellt das Datum dar. Es soll immer im Format YYYYMMDD sein.


nach der Konvertierung sollte das Ergebnis so aussehen:
0815-2612-1.00------4----21---18---20071023
Die Bindestriche sind nur zum verdeutlichen da. In der neuen Datei sind sie nicht.


Kann mir hier jemand helfen?
Danke und Gruß

Roland
Mitglied: bastla
23.10.2007 um 17:00 Uhr
Hallo reinhr!

01.
@echo off & setlocal 
02.
set "PadTemp=%temp%\Pad.vbs" 
03.
set "Quelle=C:\Live\00000*.txt" 
04.
set "Ziel=C:\Live" 
05.
set "Neu=Neu-" 
06.
echo Breite=Array(5,5,10,5,5,5,8)>"%PadTemp%" 
07.
 
08.
echo Felder=Split(CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0),1).ReadAll,"|")>>"%PadTemp%" 
09.
 
10.
echo Felder(2)=Trim(Felder(2))^&".00">>"%PadTemp%" 
11.
echo D=CDate(Felder(6)):Felder(6)=Year(D)^&Right("0"^&Month(D),2)^&Right("0"^&Day(D),2)>>"%PadTemp%" 
12.
 
13.
echo For i=0 To UBound(Felder):Zeile=Zeile^&Left(Trim(Felder(i))^&Space(Breite(i)),Breite(i)):Next:WScript.Echo Zeile>>"%PadTemp%" 
14.
for %%i in ("%Quelle%") do cscript //nologo "%PadTemp%" "%%i" >"%Ziel%\%Neu%%%~nxi%" 
15.
del "%PadTemp%"
Bitte beachten: Da die Zählung der Felder bei 0 beginnt, muss für die Felder 3 und 7 in den beiden neuen Zeilen jeweils "Felder(2)" und "Felder(6)" verwendet werden.

Grüße
bastla
Bitte warten ..
Mitglied: reinhr
23.10.2007 um 17:35 Uhr
Hallo Bastla,

einfach genial - da fällt mir nichts mehr ein!!!!

Vielen, vielen Dank!!

Gruß

Roland
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Txt datei veränden - "steuerung" für VirtualBox

gelöst Frage von AngryDadBatch & Shell7 Kommentare

Hallo zusammen! Möchte eine .bat schreiben mit der ich meine VM´s steuern kann. Hab es schon geschafft die Liste ...

Batch & Shell

Bestimmte Teile einer TXT Datei per Batch in eine neue CSV speichern

Frage von WebtixBatch & Shell8 Kommentare

Hallo zusammen, ich bekomme von einem externen Dienstleister in unregelmäßigen Abständen TXT Files mit verschiedenen Werten. Diese sind immer ...

Batch & Shell

INI Datei via Batch auslesen, verändern und nur einen Teil übernehmen in neue Datei

gelöst Frage von NovalyBatch & Shell2 Kommentare

Hallo Brauch mal Hilfe , hab schon einiges hier gefunden aber nichts klappt wie ich es genau möchte. folgendes: ...

Windows 7

Cmd-Befehlsausgaben in txt-Datei verändern deren Inhaltformat

Frage von Radix50Windows 76 Kommentare

Hallo Kollegen! Hab eine Frage zu einem Problemchen Ausgangslage: W7 Prof. (64-bit) - arbeiten mit der Eingabeaufforderung cmd für ...

Neue Wissensbeiträge
Humor (lol)
(Part num your Hacked phone. +XX XXXXXX5200)
Erfahrungsbericht von Henere vor 13 StundenHumor (lol)1 Kommentar

Mein Handy hat aber ne ganz andere Endnummer. Muss ich mir jetzt Sorgen machen ? :-) Vielleicht betrifft es ...

Exchange Server

Letztes Update für Exchange 2016 CU9 war in gewisser Weise destruktiv

Erfahrungsbericht von DerWoWusste vor 15 StundenExchange Server6 Kommentare

Kurzer Erfahrungsbericht zu Exchange2016-KB4340731-x64 Der Exchangeserver hat wie gewöhnlich versucht, es in der Nacht automatisch zu installieren - abgesehen ...

Erkennung und -Abwehr

Neue Sicherheitslücke Foreshadow (L1TF) gefährdet fast alle Intel-Prozessoren

Information von Frank vor 1 TagErkennung und -Abwehr3 Kommentare

Eine neue Sicherheitslücke, genannt Foreshadow (alias L1TF) wurde auf der Usenix Security 18 von einem Team internationaler Experten veröffentlicht. ...

Vmware
VMware Updates gegen L1 Lücke
Information von sabines vor 1 TagVmware

Für die Vmware Produkte vCenter Server, ESXi, Workstation und Fusion stehe Updates bereit um die L1 Lücke zu schließen. ...

Heiß diskutierte Inhalte
Windows Server
Domäne einsilbig mit nur einem Namen benannt - sowie AD und MX auf einer VM Kardinalsfehler?
Frage von TomTestWindows Server48 Kommentare

Hallo liebe Freunde gepflegter Probleme, seit kurzem soll ich eine Domäne verwalten die zuvor von einem IT-Dienstleister erstellt und ...

Microsoft
VPN Verbindung kann nicht aufgebaut werden
Frage von AlexderITlerMicrosoft35 Kommentare

Hallo, Ich möchte an einem unserer PCs in unserer Tochterfirma eine VPN zu unserem Netzwerk einrichten. Das schlägt allerdings ...

Windows Server
Windows Server per Web auf Daten zugreifen und verwalten
Frage von matze2090Windows Server16 Kommentare

Hallo, ich würde gerne von außen auf meinem Windows Server zugreifen um auf meine Daten zu verwalten. Meine frage ...

DNS
Gibt es eine Art DNS Proxy?
Frage von icepietDNS16 Kommentare

Hallo Nerds, Ich würde gerne folgendes machen: ts.domain.de:3389 soll auf 1.2.3.4:3389 auflösen ts2.domain.de:3389 soll auf 1.2.3.4:3390 auflösen Gibt es ...