115129
Goto Top

Batch - Inhalt einer .csv der Spalte A bis Zeile unendlich von 0-9 bzw. A-Z sortieren

Hallo zusammen,

da meine Kenntnisse in Punkto Batch-Scripting recht mager aussehen, bitte ich um Hilfe.

Folgendes soll das Skript erledigen:
1. Inhalt der Test1.csv verschieben in Test2.csv
2. Inhalt der Test1.csv löschen
3. Inhalt der Test2.csv sortieren von A-Z

Der Aufruf soll später durch die Windows Aufgabenplanung automatisiert werden.

Schritt 1 und Schritt 2 funktioniert, am Schritt 3 hapert es, wieso auch immer.
Sortiert wird jedenfalls nichts.

Es ist vielleicht noch zu erwähnen, dass nur die Spalte A bis Zeile unendlich in den csv-Dateien genutzt wird. Ich bin mir aber nicht sicher ob der Hinweis notwendig ist...
Und noch ein Hinweis; Eine Zeile kann auch mal mit folgenden Zeichen beginnen:
[ oder _ oder 0-9

Hier mein jetziger Quelltext:
TYPE Test1.csv >>Test2.csv
TYPE nul>Test1
TYPE Test2.csv | sort

Wer hat eine Lösung für mein Anliegen?

Vielen Dank schon mal für reichlich Antworten face-smile

Gruß,
Blattlaus

Content-Key: 238329

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

Ausgedruckt am: 29.03.2024 um 14:03 Uhr

Mitglied: bastla
bastla 16.05.2014 um 17:21:52 Uhr
Goto Top
Hallo BlattlausOG!

Schwer nachvollziehbar, dass nicht sortiert würde - allerdings natürlich nur die in Zeile 3 erzeugte Bildschirmausgabe ...

Falls eine sortierte Datei erzeugt werden soll, eher so:
sort Test2.csv /o Sortiert.csv
Zeile 1 würde übrigens dafür sorgen, dass der Inhalt von "Test1.csv" an eine bereits bestehende "Test2.csv" angefügt wird - falls das nicht gewünscht sein sollte, könntest Du auch einfach "copy" verwenden ...

BTW: Wozu erzeugst Du eine leere "Test1.csv"?

Grüße
bastla
Mitglied: 115129
115129 16.05.2014 aktualisiert um 20:12:32 Uhr
Goto Top
Hi bastla,

schön von dir mal wieder was zu lesen face-smile


Schwer nachvollziehbar, dass nicht sortiert würde - allerdings natürlich nur die in Zeile 3 erzeugte Bildschirmausgabe ...
Bildschirmausgabe?
Eigentlich möchte ich es schon so wie oben angegeben:

1. Inhalt der Test1.csv verschieben in Test2.csv
2. Inhalt der Test1.csv löschen
3. Inhalt der Test2.csv sortieren von A-Z

Ein Programm schreibt mir die Test1.csv Log-Datei.
Der Inhalt dieser Datei möchte ich in Test2.csv archivieren, danach darf der Inhalt der Test1.csv gelöscht werden.
Im Anschluss soll dann die Test2.csv sortiert werden.
Test1.csv wird neu mit Input gefüllt, der Vorgang wiederholt sich und wiederholt sich.


Falls eine sortierte Datei erzeugt werden soll, eher so:
sort Test2.csv /o Sortiert.csv
Ich hätte gerne dass direkt nach dem anfügen des Inhalts der Test1.csv in die Test2.csv die Sortierung startet.

Zeile 1 würde übrigens dafür sorgen, dass der Inhalt von "Test1.csv" an eine bereits bestehende "Test2.csv" angefügt wird - falls das nicht gewünscht sein > sollte, könntest Du auch einfach "copy" verwenden ...
Soll angefügt werden, dass ist richtig.

BTW: Wozu erzeugst Du eine leere "Test1.csv"?
Wie bereits oben erwähnt, Test1.csv ist eine Log-Datei die von einem Programm ausgegeben wird.

Gruß
Mitglied: bastla
Lösung bastla 16.05.2014 aktualisiert um 22:18:23 Uhr
Goto Top
Hallo BlattlausOG!
Bildschirmausgabe?
Eigentlich möchte ich es schon so wie oben angegeben:
Naja, ein "type" schreibt nun mal (wenn keine Umleitung der Ausgabe per ">" oder ">>" vorgenommen wird) nach STDOUT, also auf den Bildschirm ...

Die Kurzfassung dessen, was Du offensichtlich erreichen möchtest, wäre eine sortierte Gesamtdatei "Test2.csv" und eine leere (erstellt das Programm die Log-Datei denn bei Bedarf nicht einfach neu?) Datei "Test1.csv" - da zuerst die Inhalte der bestehenden "Test2.csv" und der "Test1.csv" zusammengefügt werden sollen, würde ich eher so vorgehen:
type "Test2.csv">>"Test1.csv"  
sort "Test1.csv" /o "Test2.csv"  
type nul>"Test1.csv"  
- ob "Test1.csv" an "Test2.csv" angefügt wird oder umgekehrt ist ja egal, wenn anschließend eine Sortierung erfolgt ...

Grüße
bastla
Mitglied: 115129
115129 16.05.2014 um 22:18:15 Uhr
Goto Top
Hey bastla,

ich habe mich an deinem Beispiel orientiert und folgendes zusammengefummelt:
@echo off
type "LOG">>"Archiv.txt"  
type nul>"LOG"  
sort "Archiv.txt" /o "LOG"  
type nul>"Archiv.txt"  
type "LOG">"Archiv.txt"  
type nul>"LOG"  
Naja, nicht hübsch aber es tut was ich will face-smile

Ich sage vielen Dank und bis zum nächsten Mal.

Grüße
Mitglied: bastla
bastla 16.05.2014 um 22:26:39 Uhr
Goto Top
Hallo BlattlausOG!
ich habe mich an deinem Beispiel orientiert
Nur bedingt (mein Beispiel hatte nur 3 Zeilen face-wink) - zumindest die Zeilen 3 und 5 kannst Du aber auch bei Deiner Variante weglassen ...

Grüße
bastla
Mitglied: 115129
115129 16.05.2014 um 22:42:18 Uhr
Goto Top
Ok, werde dies noch testen.

Danke für die Info face-smile