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)

Frage Entwicklung Batch & Shell

Mitglied: reinhr

reinhr (Level 1) - Jetzt verbinden

22.10.2007, aktualisiert 23.10.2007, 5705 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: ...

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
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 1 TagApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 1 TagWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 1 TagWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement16 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...