Batch Textdatei umschreiben und als csv speichern

gvidas

Herzlich willkommen!
Hallöchen!
Ich bin noch neu hier und habe gleich mal eine Frage an euch. :) Ich bin nicht der größte GuRu was die Programmierung angeht, habe aber derzeit eine "Aufgabe", die mich an meine Grenze bringt.
Ich möchte gerne folgenden Workflow mit einer Batch abarbeiten:
  • Datei von einem FTP-Server abholen (*.txt) (Hab ich schon geschafft! :D)
  • Datei bearbeiten:
  • Jede Zeite nach mehreren Zeichen mit Leerzeichen trennen und in " " setzen
  • an einer definierten Stelle stehen Buchstaben. Diese sollen am Ende einer Zeile einen definierten Wert ausgeben (0,5,10)
  • Datei als *.csv speichern


Hier mal ein Beispiel:
  • Zeile, wie ich sie bekomme: 40133883590924013389795489IADGN2015
  • Getrennte Zeile: "4013388359092" "4013389795489" "I" "ADGN2015"
  • Wert einfügen nach Abfrage des "I": "4013388359092" "4013389795489" "I" "ADGN2015" "0"

Ich würde mich freuen, wenn hier einer einen einfachen und verständlichen Lösungsansatz für mich hat.:)
 

Razorblade

SNF-Inventarnr. #9356663
AW: textdatei umschreiben und als csv speichern

Sind die beiden ersten Werte immer gleich lang? Also haben Sie immer die gleiche Anzahl von Zeichen?
Ist es immer nur ein Buchstabe der überprüft werden soll?

Wenn ja, dann könnte dir dieser Ansatz helfen:
Code:
@echo off

set var=40133883590924013389795489IADGN2015

set id1=%var:~0,13%
set id2=%var:~13,13%
set chk=%var:~26,1%
set id3=%var:~27,100%

if "%chk%"=="I" set chkval=0
if "%chk%"=="J" set chkval=5
if "%chk%"=="K" set chkval=10

echo "%id1%","%id2%","%chk%","%id3%","%chkval%"

exit /b

Aus einer ganzen Datei musst du halt mit einem for-loop die Datei bearbeiten und die Variablen ändern.
 

gvidas

Herzlich willkommen!
Die Werte sind immer gleich lang. Es hadelt sich um ca. 20.000 Zeilen, die ich fast täglich umschreiben muss.
Das Ganze soll morgens automatisiert laufen und nicht händisch über Excel-Mittel. (damit ist es ja recht einfach.)

Ja, es soll immer nur dieser eine Buchstabe an immer der gleichen Stelle verglichen werden, so wie du es in den "if-Zeilen" gemacht hast.
Danke schon mal für deinen Ansatz
 
Oben