Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 5667 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Batch & Shell
gelöst Einzelne Zeilen in txt Datei speichern und auslesen (7)

Frage von noah1400 zum Thema Batch & Shell ...

Batch & Shell
Ungewöhnliche Txt.Datei-Abfrage mit Batch (3)

Frage von DaTobsn zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...