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 (Teil2)

Mitglied: reinhr

reinhr (Level 1) - Jetzt verbinden

22.10.2007, aktualisiert 23.10.2007, 5769 Aufrufe, 2 Kommentare

Hallo Leute,

bastla hat mir mir folgendem Code mal sehr geholfen!
01.
@echo off & setlocal 
02.
set "PadTemp=%temp%\Pad.vbs" 
03.
set Breite=10 
04.
set "Quelle=C:\Live\00000*.txt" 
05.
set "Ziel=C:\Live" 
06.
set "Neu=Neu-" 
07.
echo Felder=Split(CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0),1).ReadAll,"|")>"%PadTemp%" 
08.
echo For i=0 To UBound(Felder):Zeile=Zeile^&Left(Trim(Felder(i))^&Space(%Breite%),%Breite%):Next:WScript.Echo Zeile>>"%PadTemp%" 
09.
for %%i in ("%Quelle%") do cscript //nologo "%PadTemp%" "%%i" >"%Ziel%\%Neu%%%~nxi%" 
10.
del "%PadTemp%"
____________________________________________________________________________________________________________
Meine damalige Frage war folgende:

Hallo Leute,
ich habe ettliche Transaktionsdateien welche täglich in ein Verzeichnis kopiert werden.
00000001.TXT bis 0000000N.TXT

Dateiinhalt ist jeweils eine Zeile
0815|2612| 1 | 4 | 21 | 1 |1147628|REINHR|NULL||IA| 50 |G|||||| 0

Ich möchte das jeweils bis zum Delimiter "|" der Wert durch eine feste Feldbreite z.B. 10 Zeichen ersetzt wird.
Den Delimiter "|" brauche ich nicht mehr in der neuen Datei. So wie die nächste Zeile sollte das Ergebnis sein.
0815----------2612---------1-------------- 4-------------21------------1---------------1147628 usw....
123456789012345678901234567890134567890123456789012345678901234567890 <<< Diese Zeile dient nur zur Orientierung
Die Bindestriche sind nur zum verdeutlichen da. In der neuen Datei sollen sie nicht sein.
___________________________________________________________________________________________________________

Ich habe jetzt bei einem anderen Kunden das Problem, dass er meine Ausgabedatei mit unterschiedlichen Feldbreiten braucht. Gibt es auch eine Möglichkeit unterschiedliche Feldlängen auszugeben?

Bis zum 1. Delimiter Feldbreite von 30 Zeichen
Bis zum 2. Delimiter Feldbreite von 15 Zeichen
Bis zum 3. Delimiter Feldbreite von 8 Zeichen
usw.

Danke und Gruß

Roland Reinhart
Mitglied: bastla
22.10.2007 um 20:09 Uhr
Hallo reinhr!

Mit dem folgenden ergänzten Batch sollte das eigentlich klappen:
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(30,15,8,5,5,5,12,15,6,10,4,9,3,4,4,4,4,4,7)>"%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%"
Wichtig ist dabei, in der Zeile "echo Breite=Array(...)" für jedes einzelne Feld die gewünschte Breite anzugeben.

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

einfach genial! Genau so sollte es sein - funktioniert einwandfrei.
Allerdings kamen bei meinem Kunden weitere zwei Probleme auf,
die poste ich aber seperat als:

TXT Datei verändern und neu speichern per Batch (Teil3)

Vielen Dank nochmal und
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: ...

Entwicklung

Batch oder Powershell für .txt-Datei

gelöst Frage von freshman2017Entwicklung5 Kommentare

Hallo liebe Gemeinde, ich habe eine .txt-Datei, die aus einer Artikelnummer und einem Bildname bestehen soll. Ausgangsdatei (export.txt) ist ...

Neue Wissensbeiträge
Sicherheit

Oracle gibt kritische Updates für diverse Produkte frei (16. Oktober 2018)

Information von kgborn vor 4 StundenSicherheit

Oracle hat zum 16. Oktober 2018 eine ganze Reihe an kritischen Updates für seine Produkte freigegeben. Eine Kurzübersicht mit ...

Windows 10
FYI: Fristen beim Windows 10 Downgrade-Recht
Information von kgborn vor 4 StundenWindows 10

Möglicherweise ist das bei euch bekannt - ich habe es gerade aus einem Newsletter eines OEMs herausgefischt. Beim Downgrade-Recht ...

CMS
Freie Wähler Bayern MySQL PW online
Information von sabines vor 7 StundenCMS4 Kommentare

Die Typo3 Installation der Freien Wähler Bayern scheint wohl längere Zeit nicht mehr angefasst und/oder fehlkonfiguriert zu sein. Nach ...

Sicherheit
Adminrechte dank Bug in Intel HD Graphics Treiber
Information von DerWoWusste vor 1 TagSicherheit

Intel HD graphics 4200 und neuer (4400, 4600 520,530,620, 630,) sind auf jeden Fall betroffen und bereinigte Treiber sind ...

Heiß diskutierte Inhalte
Debian
Linux debian 9 Installation
Frage von Green14Debian15 Kommentare

Hallo zusammen, ich habe mich ein wenig mit Debian auseinandergesetzt und möchte mir eine Standard-Installation als Grundlage für andere ...

Internet
Ist diese URL denkbar (Syntax)?
gelöst Frage von departure69Internet15 Kommentare

Hallo. Der Sohn eines Arbeitskollegen hat im Gymnasium EDV-Unterricht. Leider hat er in der letzten Klassenarbeit einen Fünfer geschrieben. ...

Windows Netzwerk
Gruppenrichtlinie für einen PC deaktivieren
gelöst Frage von Florian961988Windows Netzwerk14 Kommentare

Hallo, kleines Problem und immoment finde ich dazu keine Lösung oder mir fällt nicht ein, wie ich es suche ...

Festplatten, SSD, Raid
LSI 9361 Controller, versehentlich virtual Drive am Controller gelöscht
Frage von pixel24Festplatten, SSD, Raid12 Kommentare

Hallo zusammen, gibt es hier einen Experten der sich gut mit LSI MegaRAID auskennt? Ich habe versehentlich im Controller-BIOS ...