newstar7777
Goto Top

Batch:boot.ini userpmtimer einfügen nach dem Wort fastdetect

Hallo.
Ich möchte bei Windows XP per Batch ein Wort einfügen, was nach /fastdetect kommt.
Als Beispiel die boot.ini

[boot loader]
timeout=1
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /usepmtimer

Falls /usepmtimer vorhanden ist, ist nichts zu tun.
Wäre für Eure Hilfe dankbar.

Gruß newstar7777

Content-ID: 211963

Url: https://administrator.de/forum/batch-boot-ini-userpmtimer-einfuegen-nach-dem-wort-fastdetect-211963.html

Ausgedruckt am: 27.12.2024 um 05:12 Uhr

Pjordorf
Pjordorf 19.07.2013 aktualisiert um 16:30:05 Uhr
Goto Top
Hallo und herzlich Willkommen hier im Forum,

Zitat von @newstar7777:
Wäre für Eure Hilfe dankbar.
Wir helfen dir gern, aber ich kann nicht sehen wo du scheiterst oder dein Problem ist. Was hast du denn bisher an Code, dann können wir erkennen wo dein Problem liegt und dir auch helfen.face-smile

Benutze die Code Tags um deinen Code hier zu posten. Es ist doch schon mehr als ein
@echo off
geworden, gell?

Gruß,
Peter
newstar7777
newstar7777 19.07.2013 aktualisiert um 16:47:39 Uhr
Goto Top
Habe zwar schon angefangen, aber es klappt nicht so, wie es eigentlich sein soll.
Problem, /fastdetect zu finden und hinten dran /usepmtimer einfügen.
Bloß wie gehe ich jetzt vor, damit es funktioniert?

@Echo off & Setlocal
Color 1e

@echo off & setlocal
Color 1e

Echo ************************************
Echo ***  Wort suchen in einer Datei  ***
Echo *** D:\Boot.Ini = /usepmtimer    ***
Echo *** Falls nichts gefunden wird,  *** 
Echo *** soll Programm beendet werden ***
Echo ************************************

Set "Textdatei=D:\Boot.Ini"  

For /f "tokens=2 delims==" %%s in ('Findstr /i /c:"/usepmtimer" "%Textdatei%"') do If not defined Treffer set "Treffer=%%s"  

If not defined Treffer (
Echo In der Boot.Ini wurde kein Eintrag /usepmtimer gefunden!
Echo Programm wird beendet!
)

If not defined Treffer (
Goto PrgEnd
) Else Goto Ausgabetext 

:Ausgabetext
Echo In der Boot.Ini wurde ein Eintrag gefunden:
Echo.
Echo %Treffer%
Goto PrgEnd

:PrgEnd
Pause
Goto :eof
Pjordorf
Pjordorf 19.07.2013 aktualisiert um 16:48:45 Uhr
Goto Top
Hallo,

Zitat von @newstar7777:
aber es klappt nicht so, wie es eigentlich sein soll:
Sollen wir jetzt alle raten was bei dir ein "aber es klappt nicht" bedeutet oder verrätst du uns das auch noch? Wir sehen nicht was du siehst wenn du auf dein Fenster schaust. Ich sehe Blumen wenn ich durch mein fenster schaueface-smile
@Echo off & Setlocal
Color 1e
 
@echo off & setlocal
Color 1e
Wird die Farbe besser wenn du das 2 mal machst? Und du hast dein Batchdatei auch mal aus einem CMD Fenster ohne dein Echo off gestartet damit du die Fehler aufgemalt bekommst?

Gruß,
Peter
newstar7777
newstar7777 19.07.2013 aktualisiert um 17:01:04 Uhr
Goto Top
Sorry hatte die beiden Zeile doppelt kopiert gehabt face-wink
Die Farbe gelb auf blau habe ich deshalb gewählt, weil ich die Ausgabe am Monitor besser sehen kann, ob es läuft.

Ich weiß leider nicht weiter, wie man nun ein Wort in einer Zeile einfügt, wenn man das entsprechende Wort gefunden hat.
( /fastdetect gefunden, dann /usepmtimer einfügen )
Da hänge ich fest...
newstar7777
newstar7777 20.07.2013 um 12:13:58 Uhr
Goto Top
Gibt es da keine Lösung?

Abfrage habe ich ja hin bekommen, aber wie füge ich nun /usepmtimer ein?

Echo >>/usepmtimer boot.ini
76109
76109 21.07.2013 um 13:04:59 Uhr
Goto Top
Hallo newstar7777!

Versuchs mal hiermit:
@echo off & setlocal 

set "ein=C:\Test\Boot.ini"  
set "aus=C:\Test\Boot.txt"  

set "opt1=/fastdetect"  
set "opt2=/usepmtimer"  
set "cat1= /usepmtimer"  

copy nul %aus%>nul

FOR /f "usebackq delims=" %%i in ("%ein%") do (echo %%i|findstr /i /c:"%opt1%">nul && (  
    echo %%i|findstr /i /c:"%opt2%">nul && echo %%i>>%aus% || echo %%i%cat1%>>%aus%) || echo %%i>>%aus%  
)
Durchsucht die Zeilen zuerst nach '/fastdetect' und anschließend nach '/usepmtimer'. Wenn es fehlt, dann wird es am Zeilenende angefügt und in die Ausgabe-Datei geschrieben, ansonsten werden die Zeilen unverändert in die Ausgabe-Datei übernommen.

Gruß Dieter
newstar7777
newstar7777 21.07.2013 um 21:52:32 Uhr
Goto Top
Vielen Dank nochmal face-wink

Es funktioniert, war schon ratlos gewesen.
Versuchte es immer mit der >if< Abfrage, aber es wollte nicht so.
Das hier mit >findstr< ersetzt das >if<.

Gruß Newstar7777