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?