olalaland
Goto Top

Benötige Hilfe Zeilen ändern fals nicht vorhanden hinzufügen

Und zwar geht es um Folgendes habe mir eine kleine Batchdatei anhand des Forums zusammenbasteln können face-big-smile
Nun zu meinem Problem
Er Löscht bzw ersetzt immer die 1. Zeile des Gesuchten Bereichs, und zum 2. wäre es schön wenn er die werte nicht Stumpf in den Bereich einfügt sondern fals sie vorhanden sind diese ändert. Es gibt allerdings Settings in dieser .ini Datei die leer sind z.B.

[Misc]
Backuptarget=
xxx=1
yyy=2

Nun passiert es das er ab Backuptarget hängen bleibt fals ich nur Werte ersetzen möchte vielleicht kann ja jemand Helfen

Mein bisheriger CODE
for /f "delims=" %%a in ('dir /b /s /a-d "C:\Test\*OM.INI"') do (  
	echo %%a

		Move %%a %%a.v6.ini	
		(	
		FOR /f "tokens=1*delims=" %%x IN (%%a.v6.ini) DO (  
			FOR /f "tokens=1*delims== " %%b IN ("%%x") DO (  
			SET repro=Y
				IF "%%c"=="" (  
				SET "Gruppe="  
				IF /i "%%b"=="[Misc]" SET Gruppe=y  
				
				
				
				

				) ELSE (
				IF DEFINED Gruppe  (SET "repro="&ECHO(ColorText1=16777215)  
				IF DEFINED Gruppe  (SET "repro="&ECHO(ColorText2=16777215)  
				IF DEFINED Gruppe  (SET "repro="&ECHO(ColorText3=0)  
				IF DEFINED Gruppe  (SET "repro="&ECHO(ColorText4=0)  
				IF DEFINED Gruppe  (SET "repro="&ECHO(ColorBase1=12434688)  
				IF DEFINED Gruppe  (SET "repro="&ECHO(ColorBase2=9211020)  
				IF DEFINED Gruppe  (SET "repro="&ECHO(ColorBase3=12434688)  
				IF DEFINED Gruppe  (SET "repro="&ECHO(ColorBase4=9211020)  
				IF DEFINED Gruppe  (SET "repro="&ECHO(ColorModeText1=1)  
				IF DEFINED Gruppe  (SET "repro="&ECHO(ColorModeBase1=2)  
				IF DEFINED Gruppe  (SET "repro="&ECHO(ColorModeText2=1)  
				IF DEFINED Gruppe  (SET "repro="&ECHO(ColorModeBase2=1)  
				IF DEFINED Gruppe  (SET "repro="&ECHO(ColorModeText3=1)  
				IF DEFINED Gruppe  (SET "repro="&ECHO(ColorModeBase3=2)  
				IF DEFINED Gruppe  (SET "repro="&ECHO(ColorModeText4=1)  
				IF DEFINED Gruppe  (SET "repro="&ECHO(ColorModeBase4=1)  
				IF DEFINED Gruppe  (SET "repro="&ECHO(ColorModeBaseFocus=2)  
				IF DEFINED Gruppe  (SET "repro="&ECHO(ColorModeBaseError=1)  
				)
				
				
			 IF DEFINED repro ECHO(%%x
			)
		)
		)>%%a
			rem del %%a.bak
)

Content-Key: 1296057985

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

Printed on: April 27, 2024 at 03:04 o'clock

Mitglied: 149569
149569 Sep 23, 2021 updated at 12:48:43 (UTC)
Goto Top
Für sowas nimmt man heutezutage doch gleich die Powershell
https://www.powershellgallery.com/packages/PsIni/3.1.2
Install-Module -Name PsIni 
(Get-IniContent "D:\myinifile.ini") | Set-IniContent -NameValuePairs @{'Backuptarget'='D:\Blablub'} -Sections 'Misc' | Out-IniFile "D:\myinifile.ini" -Force  
Oder für die VBS Fraktion gibbet auch genügend Futter womit man sowas "vernünftig" macht
Arbeiten mit INI Files in VBScript
Member: Olalaland
Olalaland Sep 27, 2021 at 07:02:11 (UTC)
Goto Top
Ja es sollte schon in Batch gehalten werden da wir mit Verschiedenen Betriebssystemen zurecht kommen müssen.
Mitglied: 149569
149569 Sep 27, 2021 updated at 08:22:16 (UTC)
Goto Top
Zitat von @Olalaland:

Ja es sollte schon in Batch gehalten werden da wir mit Verschiedenen Betriebssystemen zurecht kommen müssen.
Jedes Windows OS das Batch beherrscht, tut das auch mit Powershell, selbst XP.