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-Key: 259656

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

Printed on: April 19, 2024 at 13:04 o'clock

Mitglied: 114757
114757 Jan 13, 2015 updated at 19:27:33 (UTC)
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
Member: kunzibus
kunzibus Jan 13, 2015 at 10:57:18 (UTC)
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
Mitglied: 114757
Solution 114757 Jan 13, 2015 updated at 17:57:08 (UTC)
Goto Top
ah ok du hast noch Powershell 2.0 in dem Fall:
siehe Änderung oben
Member: kunzibus
kunzibus Jan 13, 2015 at 11:49:16 (UTC)
Goto Top
Danke danke hat super funktioniert. Vieen dank jodel