65999
Goto Top

Mit Batch csv Dateien bearbeiten

Ich habe 2 Dateien, einmal eine Batch Datei und eine csv Datei: Die Batch Datei soll den eingegebenen Namen in der csv Datei finden und den Anwender abfragen, welche Installationsvariante der Name bekommen soll. Anschließend überprüft die Batch Datei ob der Name die richtige Installationsvariante hat, falls nein, trägt er den Namen in die gewählte Installationsvariante ein.

Jedes Feld steht für eine Installationsvariante, das Script trägt dann automatisch den Namen ein, falls in der Batch die jeweilige Installationsvariante gewählt wurde:

X;Mustermann;X;X;X;X;X;
X;X;X;X;Mustermann2;X;X;

Die Batchdatei sieht so aus:
@echo off & setlocal

Set sapcsv=C:\sap.csv
set /P name= Bitte Name eingeben, der veraendert werden soll: 
set /P Variante= Bitte Installationsvariante eingeben: 

For /f "delims=; tokens=1-7" %%a in ('Find /i "%name%" "%sapcsv%"') do (  
Set newline=
set t1=X
set t2=X
set t3=X
set t4=X
set t5=X
Set t6=X
Set t7=X

If /i "%Variante%"== "A" Set "t1=%name%"  
If /i "%Variante%"== "B" Set "t2=%name%"   
If /i "%Variante%"== "C" Set "t3=%name%"  
If /i "%Variante%"== "D" Set "t4=%name%"   
If /i "%Variante%"== "E" Set "t5=%name%"   
If /i "%Variante%"== "F" Set "t6=%name%"   
If /i "%Variante%"== "G" Set "t7=%name%"   
)

Set newline=%t1%;%t2%;%t3%;%t4%;%t5%;%t6%;%t7%;

Find /v /i "%name%" "%sapcsv%" >"%temp%\temp.csv"  
echo %newline%>>"%temp%\temp.csv"  
Copy /y "%temp%\temp.csv" "%sapcsv%"  

pause

Im Prinzip funktioniert das ganze so wie es funktionieren soll, doch es gibt noch 1 Problem: Frage gelöscht

Wäre nett, wenn ihr mir helfen könntet.

Content-Key: 97152

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

Printed on: April 26, 2024 at 14:04 o'clock

Member: bastla
bastla Sep 17, 2008, updated at Nov 10, 2016 at 19:34:17 (UTC)
Goto Top
Hallo user47444!

Zum 1.: Verwende "findstr" anstelle von "find"

Zum 2.: Suche nach zB ";Schmidt;" (bzw, falls der Name auch am Anfang oder Ende der Zeile stehen kann, unter Verwendung von "findstr" mit "^Schmidt;" oder "Schmidt$" bzw den Schaltern "/b" oder "/e")

Grüße
bastla