Batch-Datei erstellen, die beim Booten Installationspfad ermittelt und Datei löscht
Hi!
Ich möchte eine Batch-Datei erstellen, die sich automatisch beim Booten öffnet, einen Installationspfad aus der Registry herausliest, überprüft ob in diesem Pfad eine bestimmte Datei vorhanden ist, und falls ja, sie dann löscht.
Ist dies möglich? Ich habe selber nicht viel Erfahrung auf dem Gebiet "Batch-Programmierung" und würde mich über jegliche Hilfe freuen.
Schöne Grüße,
Nornoks
Ich möchte eine Batch-Datei erstellen, die sich automatisch beim Booten öffnet, einen Installationspfad aus der Registry herausliest, überprüft ob in diesem Pfad eine bestimmte Datei vorhanden ist, und falls ja, sie dann löscht.
Ist dies möglich? Ich habe selber nicht viel Erfahrung auf dem Gebiet "Batch-Programmierung" und würde mich über jegliche Hilfe freuen.
Schöne Grüße,
Nornoks
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 61534
Url: https://administrator.de/forum/batch-datei-erstellen-die-beim-booten-installationspfad-ermittelt-und-datei-loescht-61534.html
Ausgedruckt am: 23.04.2025 um 09:04 Uhr
11 Kommentare
Neuester Kommentar

hallo,
entweder:
Batch in den Autostart, mit Inhalt: if exist "pfad zur gesuchten Datei" del "Pfad zur Datei"
wenn es direkt bei Booten passieren soll, also noch vor dem Autostart, muss die Batch in folgendes Verzeichnis gespeichert werden:
für WIN 2000: "C:\WINNT\system32\GroupPolicy\Machine\Scripts\Startup"
für WIN XP (nur XP Pro): "C:\WINDOWS\system32\GroupPolicy\Machine\Scripts\Startup"
gruß
@bastla
ist korrigiert - Danke für Aufpassen!
Immer hilfreich wenn man auf Spinat in den Zähnen aufmerksam gemacht wird
entweder:
Batch in den Autostart, mit Inhalt: if exist "pfad zur gesuchten Datei" del "Pfad zur Datei"
wenn es direkt bei Booten passieren soll, also noch vor dem Autostart, muss die Batch in folgendes Verzeichnis gespeichert werden:
für WIN 2000: "C:\WINNT\system32\GroupPolicy\Machine\Scripts\Startup"
für WIN XP (nur XP Pro): "C:\WINDOWS\system32\GroupPolicy\Machine\Scripts\Startup"
gruß
@bastla
ist korrigiert - Danke für Aufpassen!
Immer hilfreich wenn man auf Spinat in den Zähnen aufmerksam gemacht wird

Danke, und wie lasse ich ihn den Pfad aus der Registry lesen?
wozu Registry?Reicht es nicht, wenn Du weißt wo sie im WIN Explorer liegt (oder nicht liegt)?
Um was für eine Datei geht es denn?
Eine Installation kannst Du so jedenfalls nicht sauber löschen!
gruß

hallo,
dann schau dir mal die ersten 2 Beiträge hier drunter an ("Mögliche Antworten oder verwandte Beiträge") ob die dich weiter bringen.
Und lies auch Suche nach Nero-Installation schlägt fehl (Nimm dir Zeit)
Wenn nicht musst Du mal konkreter werden.
gruß
dann schau dir mal die ersten 2 Beiträge hier drunter an ("Mögliche Antworten oder verwandte Beiträge") ob die dich weiter bringen.
Und lies auch Suche nach Nero-Installation schlägt fehl (Nimm dir Zeit)
Wenn nicht musst Du mal konkreter werden.
gruß
Hallo Nornoks!
Auf Basis Deines Beispiels sollte das etwa so gehen:
Zum Testen: Solange in der letzten Zeile das "@echo" steht, wird der folgende Löschbefehl nur angezeigt , aber nicht ausgeführt. Der ev doppelte "\" vor "repair.exe" muss Dich nicht irritieren - die Datei wird auch so gefunden.
Falls der Registry-Wert nicht gefunden wird, erhältst Du entsprechend die Fehlermeldung "Fehler: Der angegebene Registrierungsschlüssel oder Wert konnte nicht gefunden werden." Diese Meldung kann unterdrückt werden, indem Du ersatzweise die folgende Zeile 2 verwendest:
Das Umbenennen von Dateien wird mit "ren" oder "rename" erledigt (Hilfe dazu mit "ren /?").
Grüße
bastla
Auf Basis Deines Beispiels sollte das etwa so gehen:
@echo off & setlocal
for /f "tokens=2*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Blizzard Entertainment\World of Warcraft" /v InstallPath') do set "Pfad=%%j"
if exist "%Pfad%\repair.exe" @echo del "%Pfad%\repair.exe"
Falls der Registry-Wert nicht gefunden wird, erhältst Du entsprechend die Fehlermeldung "Fehler: Der angegebene Registrierungsschlüssel oder Wert konnte nicht gefunden werden." Diese Meldung kann unterdrückt werden, indem Du ersatzweise die folgende Zeile 2 verwendest:
for /f "tokens=2*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Blizzard Entertainment\World of Warcraft" /v InstallPath <b>2^>nul</b>') do set "Pfad=%%j"
Grüße
bastla
Hallo Nornoks!
Was nicht funktionieren kann, ist das Umbenennen - die entsprechenden Zeilen müssten etwa so aussehen: "ren AlterNameMitPfad NeuerNameOhnePfad" - daher:
Sollte es andere Fehler geben, kannst Du diesen besser auf die Spur kommen, wenn Du in der ersten Zeile aus "echo off" ein "echo on" machst - so werden alle Befehle zunächst angezeigt und dann erst ausgeführt.
Grüße
bastla
Allerdings funktioniert es nicht...
... ist als Fehlerbeschreibung verbesserungswürdig.Was nicht funktionieren kann, ist das Umbenennen - die entsprechenden Zeilen müssten etwa so aussehen: "ren AlterNameMitPfad NeuerNameOhnePfad" - daher:
if exist "%Pfad%\data\patch.mpq" ren "%Pfad%\data\patch.mpq" "windows.mpq"
Sollte es andere Fehler geben, kannst Du diesen besser auf die Spur kommen, wenn Du in der ersten Zeile aus "echo off" ein "echo on" machst - so werden alle Befehle zunächst angezeigt und dann erst ausgeführt.
Grüße
bastla