Batch – die besten Beiträge

.csv Zeile mit batch ersetzen?

Heyo Freunde =)

Mit der Vorahnung, dass der Erzesel wieder die passende Lösung parat hat.. :D

Ich möchte mit meinem Batch script in meiner .csv Datei eine bestimmte Zeile ersetzen oder löschen. Die Datei sieht wie folgt aus:

b0200140	Status 2 
b0200150	Status 1 
b0200160	Status 2 
b0200240	Status 2 
b0200250	Status 2 
b0200260	Status 2 
b0200350	Status 2 
b0200360	Status 2 
b0200450	Status 2 
b0200460	Status 2 

Nun kann ich aus der Tabelle mit der Nummer den jeweiligen Datensatz direkt auswählen und über das Menü auch die History ansehen. Nun möchte ich aber auch den Status ändern. Es gibt 3 unterschiedliche Status Zahlen, Quasi Status 1, Status 2 und Status 3.

Hier erstmal das Menü dazu:

	title %title% - Storage Settings
	color %__@.backgroundcolor%%__@.fontcolor%
	cls
		echo ╔══════════════════════╦══════════════════════╦══════════════════════╦══════════════════════╗
		echo ║  C - Create Storage  ║                      ║                      ║      B - Back        ║
		echo ╠══════════════════════╩══════════════════════╩══════════════════════╩══════════════════════╣
		echo !Table4.HeaderLine!
		echo %Table4.HeadBottom%
	for /f "skip=2 tokens=1-6 delims=[];" %%a in ('find /v /n "" "%appdata%\crs\storage.csv"') do (
    call :replaceTableLineContent Table4.NewLine  "%%~a" "%%~b" "%%~c" "%%~d"
		echo !Table4.NewLine!
	)
		echo %Table4.Bottom%
	echo.
	echo Status 1: Blocked		  Status 2: Active		  Status 3: Damage
	echo.
	echo.
	set /p "LineNo=Enter storage number:"
	if %LineNo%==c goto CAT.HOME.SETTINGS.STORAGE.CREATE
	if %LineNo%==b goto CAT.HOME.SETTINGS.ADMIN
	set ColNo=1
	set "line="
	set /a LineNo-=1
	for /f "delims=; tokens=%ColNo%" %%a in ('more/e +%LineNo% ^< %appdata%\crs\storage.csv') do (
	if not defined line set "line=%%a"
	)
	set ColNo2=2
	set "line2="
	for /f "delims=; tokens=%ColNo2%" %%a in ('more/e +%LineNo% ^< %appdata%\crs\storage.csv') do (
	if not defined line2 set "line2=%%a"
	)
	goto CAT.HOME.SETTINGS.STORAGE.FILTER

Damit kann ich einfach eine Nummer der Aufzählung eingeben und gelange auf eine Seite, auf der ich Details sehe, die Historie einsehen kann (wer was wann warum gemacht hat) und den Status ändern kann.

Wie kriege ich das wohl am besten hin, dass ich entweder nur die ausgewählte Zeile in der .csv überschreibe oder den Status überschreibe?

programmieren, Batch

Meistgelesene Beiträge zum Thema Batch