kunzibus
Goto Top

Zeilenumbruch nach 40 zeichen hinzufügen

Hallo Community,

ich lese von einem Zeitterminal die Stempeldaten aus. Die Datei heißt allebuchungen.txt. Wenn ich das ganze mit Notepad betrachte sind leider alle Zeichen in einer Wurscht im Textfile.
$B4463214817;08.01.15;13:45:47;001;000;$B4463214817;08.01.15;13:45:47;001;000;$B4463211302;08.01.15;14:13:39;001;000;$B4463217202;08.01.15;14:13:47;001;000;$B4463211695;08.01.15;14:22:44;001;000;$B4463211697;08.01.15;14:23:27;001;000;$B4463211827;08.01.15;14:24:18;001;000;$B4463211827;08.01.15;14:24:35;001;000;$B4463216516;08.01.15;14:24:40;001;000;$B4463216516;08.01.15;14:24:44;001;000;$B4463087152;08.01.15;14:25:30;001;000;$B4463213597;08.01.15;14:27:47;001;000;
Es soll aber so aussehen.
$B4463214817;08.01.15;13:45:47;001;000;
$B4463214817;08.01.15;13:45:47;001;000;
$B4463211302;08.01.15;14:13:39;001;000;
$B4463217202;08.01.15;14:13:47;001;000;
$B4463211695;08.01.15;14:22:44;001;000;
$B4463211697;08.01.15;14:23:27;001;000;
$B4463211827;08.01.15;14:24:18;001;000;
$B4463211827;08.01.15;14:24:35;001;000;
$B4463216516;08.01.15;14:24:40;001;000;
$B4463216516;08.01.15;14:24:44;001;000;
$B4463087152;08.01.15;14:25:30;001;000;
$B4463213597;08.01.15;14:27:47;001;000;
Es soll also alle 40 Zeichen ein Zeilenumbruch eingefügt werden.

Wie kann ich ein Batchfile erstellen was in der Datei allebuchungen.txt alle 40 Zeichen einen Zeilenumbruch einfügt. Bitte um Tipps ich finde einfach keine Lösung.


Mit freundlichen Grüßen

kunzibus

Content-ID: 259656

Url: https://administrator.de/contentid/259656

Ausgedruckt am: 22.11.2024 um 19:11 Uhr

114757
114757 13.01.2015 aktualisiert um 20:27:33 Uhr
Goto Top
Moin kunzibus,
kleines Powershell-Script
$file = 'C:\temp\test.txt'  
$text = gc $file | out-string
1..([math]::Floor($text.Length/39)) | %{$text = $text.Insert(($_*40)-1,"|")}  
$text.Split("|") | set-content $file  
Gruß jodel32
kunzibus
kunzibus 13.01.2015 um 11:57:18 Uhr
Goto Top
Hi Jodel Danke für dein Script. Allerdings bin ich scheinbar zu doof dafür.

ich habe die datei alle buchungen.csv nach c:\temp\test.txt kopiert. dann habe ich eine convert.ps1 erstellt und deinen text hineinkopiert. Wenn ich nun die convert.ps1 ausführe komtm allerdings folgende fehlermeldung. Was mache ich falsch? Vielen Dank im voraus.


PS C:\Users\admin> Set-ExecutionPolicy Unrestricted

Ausführungsrichtlinie ändern
Die Ausführungsrichtlinie trägt zum Schutz vor nicht vertrauenswürdigen Skripts bei. Wenn Sie die Ausführungsrichtlinie
ändern, sind Sie möglicherweise den im Hilfethema "about_Execution_Policies" beschriebenen Sicherheitsrisiken
ausgesetzt. Möchten Sie die Ausführungsrichtlinie ändern?
[J] Ja [N] Nein [H] Anhalten [?] Hilfe (Standard ist "J"): j
PS C:\Users\admin> C:\Temp\convert.ps1
Fehler beim Aufrufen der Methode, da [System.Object[]] keine Methode mit dem Namen "Insert" enthält.
Bei C:\Temp\convert.ps1:3 Zeichen:55

back-to-top1..([int]($text.Length/40)-1) | %{$text = $text.Insert <<<< (($_*40)-1,"|")}

+ CategoryInfo : InvalidOperation: (Insert:String) , RuntimeException
+ FullyQualifiedErrorId : MethodNotFound

Fehler beim Aufrufen der Methode, da [System.Object[]] keine Methode mit dem Namen "Insert" enthält.
Bei C:\Temp\convert.ps1:3 Zeichen:55

back-to-top1..([int]($text.Length/40)-1) | %{$text = $text.Insert <<<< (($_*40)-1,"|")}

+ CategoryInfo : InvalidOperation: (Insert:String) , RuntimeException
+ FullyQualifiedErrorId : MethodNotFound

Fehler beim Aufrufen der Methode, da [System.Object[]] keine Methode mit dem Namen "Insert" enthält.
Bei C:\Temp\convert.ps1:3 Zeichen:55

back-to-top1..([int]($text.Length/40)-1) | %{$text = $text.Insert <<<< (($_*40)-1,"|")}

+ CategoryInfo : InvalidOperation: (Insert:String) , RuntimeException
+ FullyQualifiedErrorId : MethodNotFound

Fehler beim Aufrufen der Methode, da [System.Object[]] keine Methode mit dem Namen "Insert" enthält.
Bei C:\Temp\convert.ps1:3 Zeichen:55

back-to-top1..([int]($text.Length/40)-1) | %{$text = $text.Insert <<<< (($_*40)-1,"|")}

+ CategoryInfo : InvalidOperation: (Insert:String) , RuntimeException
+ FullyQualifiedErrorId : MethodNotFound

Fehler beim Aufrufen der Methode, da [System.Object[]] keine Methode mit dem Namen "Insert" enthält.
Bei C:\Temp\convert.ps1:3 Zeichen:55

back-to-top1..([int]($text.Length/40)-1) | %{$text = $text.Insert <<<< (($_*40)-1,"|")}

+ CategoryInfo : InvalidOperation: (Insert:String) , RuntimeException
+ FullyQualifiedErrorId : MethodNotFound

Fehler beim Aufrufen der Methode, da [System.Object[]] keine Methode mit dem Namen "Insert" enthält.
Bei C:\Temp\convert.ps1:3 Zeichen:55

back-to-top1..([int]($text.Length/40)-1) | %{$text = $text.Insert <<<< (($_*40)-1,"|")}

+ CategoryInfo : InvalidOperation: (Insert:String) , RuntimeException
+ FullyQualifiedErrorId : MethodNotFound

Fehler beim Aufrufen der Methode, da [System.Object[]] keine Methode mit dem Namen "Insert" enthält.
Bei C:\Temp\convert.ps1:3 Zeichen:55

back-to-top1..([int]($text.Length/40)-1) | %{$text = $text.Insert <<<< (($_*40)-1,"|")}

+ CategoryInfo : InvalidOperation: (Insert:String) , RuntimeException
+ FullyQualifiedErrorId : MethodNotFound

Fehler beim Aufrufen der Methode, da [System.Object[]] keine Methode mit dem Namen "Insert" enthält.
Bei C:\Temp\convert.ps1:3 Zeichen:55

back-to-top1..([int]($text.Length/40)-1) | %{$text = $text.Insert <<<< (($_*40)-1,"|")}

+ CategoryInfo : InvalidOperation: (Insert:String) , RuntimeException
+ FullyQualifiedErrorId : MethodNotFound

Fehler beim Aufrufen der Methode, da [System.Object[]] keine Methode mit dem Namen "Insert" enthält.
Bei C:\Temp\convert.ps1:3 Zeichen:55

back-to-top1..([int]($text.Length/40)-1) | %{$text = $text.Insert <<<< (($_*40)-1,"|")}

+ CategoryInfo : InvalidOperation: (Insert:String) , RuntimeException
+ FullyQualifiedErrorId : MethodNotFound

Fehler beim Aufrufen der Methode, da [System.Object[]] keine Methode mit dem Namen "Insert" enthält.
Bei C:\Temp\convert.ps1:3 Zeichen:55

back-to-top1..([int]($text.Length/40)-1) | %{$text = $text.Insert <<<< (($_*40)-1,"|")}

+ CategoryInfo : InvalidOperation: (Insert:String) , RuntimeException
+ FullyQualifiedErrorId : MethodNotFound

Fehler beim Aufrufen der Methode, da [System.Object[]] keine Methode mit dem Namen "Insert" enthält.
Bei C:\Temp\convert.ps1:3 Zeichen:55

back-to-top1..([int]($text.Length/40)-1) | %{$text = $text.Insert <<<< (($_*40)-1,"|")}

+ CategoryInfo : InvalidOperation: (Insert:String) , RuntimeException
+ FullyQualifiedErrorId : MethodNotFound

Fehler beim Aufrufen der Methode, da [System.Object[]] keine Methode mit dem Namen "Insert" enthält.
Bei C:\Temp\convert.ps1:3 Zeichen:55

back-to-top1..([int]($text.Length/40)-1) | %{$text = $text.Insert <<<< (($_*40)-1,"|")}

+ CategoryInfo : InvalidOperation: (Insert:String) , RuntimeException
+ FullyQualifiedErrorId : MethodNotFound

Fehler beim Aufrufen der Methode, da [System.Object[]] keine Methode mit dem Namen "Insert" enthält.
Bei C:\Temp\convert.ps1:3 Zeichen:55

back-to-top1..([int]($text.Length/40)-1) | %{$text = $text.Insert <<<< (($_*40)-1,"|")}

+ CategoryInfo : InvalidOperation: (Insert:String) , RuntimeException
+ FullyQualifiedErrorId : MethodNotFound

Fehler beim Aufrufen der Methode, da [System.Object[]] keine Methode mit dem Namen "Split" enthält.
Bei C:\Temp\convert.ps1:4 Zeichen:12

back-to-top$text.Split <<<< ("|") | set-content $file

+ CategoryInfo : InvalidOperation: (Split:String) , RuntimeException
+ FullyQualifiedErrorId : MethodNotFound
114757
Lösung 114757 13.01.2015 aktualisiert um 18:57:08 Uhr
Goto Top
ah ok du hast noch Powershell 2.0 in dem Fall:
siehe Änderung oben
kunzibus
kunzibus 13.01.2015 um 12:49:16 Uhr
Goto Top
Danke danke hat super funktioniert. Vieen dank jodel