Eigene Dateien nach Programmende per Batch neu stetzen
Hallo!
Ich habe ein kleines Problem. Mich nervt es ziemlich dass einige Programme (bevorzugt Spiele) ungefragt ihre User-Daten unter "Eingene Dateien" speichern. Um dies zu umgehen habe ich mir eine kleine Batch-Datei (Start.bat) erstellt, die ich vor Spielstart ausführe:
Nach dem Spiel mache ich alles wieder "rückgängig" mit dieser Batch (Ende.bat):
Optimaler wäre es natürlich, wenn einfach automatisch vor Start des Spiels die erste, nach Beenden des Spiels, die zweite Batch ausgeführt wird. Ich habe hier im Forum ein wenig gestöbert und mir folgendes zusammengefrickelt (Spiel.bat):
Es funktioniert zwar rudimentär, aber die Hoffnung, dass ich z.B. einfach in einer Verknüfung "c:\spiel.bat c:\spielpfad spiel.exe" angeben kann und die Parameter korrekt übergeben werden, hat sich nicht erfüllt. Das ganze funktioniert nur bei Aufruf aus der Kommandozeile.
Vielleicht gibt es ja für das Problem eine viel elegantere Lösung und ihr schlagt Euch die Hände über dem Kopf zusammen bei meinem Noob-Copy/Paste-Batch. Der ständige Ping im Hintergrund verbraucht ja auch ein paar Ressourcen. Ich würde mich daher über eine Lösung sehr freuen.
Vielen Dank im Voraus,
MaDtze
P.S.: Betriebssystem ist übrigens Win XP Prof.
Ich habe ein kleines Problem. Mich nervt es ziemlich dass einige Programme (bevorzugt Spiele) ungefragt ihre User-Daten unter "Eingene Dateien" speichern. Um dies zu umgehen habe ich mir eine kleine Batch-Datei (Start.bat) erstellt, die ich vor Spielstart ausführe:
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Personal" /t "REG_EXPAND_SZ" /d "C:\Spiele\Eigene Dateien" /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Personal" /t "Reg_SZ" /d "C:\Spiele\Eigene Dateien" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DocFolderPaths" /v "Personal" /t "Reg_SZ" /d "C:\Spiele\Eigene Dateien" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DocFolderPaths" /v "Matthias" /t "Reg_SZ" /d "C:\Spiele\Eigene Dateien" /f
Nach dem Spiel mache ich alles wieder "rückgängig" mit dieser Batch (Ende.bat):
rreg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Personal" /t "REG_EXPAND_SZ" /d "D:\Eigene Dateien" /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Personal" /t "Reg_SZ" /d "D:\Eigene Dateien" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DocFolderPaths" /v "Personal" /t "Reg_SZ" /d "D:\Eigene Dateien" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DocFolderPaths" /v "Matthias" /t "Reg_SZ" /d "D:\Eigene Dateien" /f
Optimaler wäre es natürlich, wenn einfach automatisch vor Start des Spiels die erste, nach Beenden des Spiels, die zweite Batch ausgeführt wird. Ich habe hier im Forum ein wenig gestöbert und mir folgendes zusammengefrickelt (Spiel.bat):
:: p1=Pfad zum Spiel p2=exe-Datei des Spiels
@echo off
SET usedvars=p1 p2 pfad
:: Abfragen der Spiel-Parameter und Zuweisung zur Variable p1 und p2
IF (%1)==() (GOTO :eof) ELSE (SET p1=%1)
IF (%2)==() (GOTO :eof) ELSE (SET p2=%2)
set "pfad=%p1%%p2%"
:: Setzen des neuen "Eigene Dateien"-Pfads
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Personal" /t "REG_EXPAND_SZ" /d "C:\Spiele\Eigene Dateien" /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Personal" /t "Reg_SZ" /d "C:\Spiele\Eigene Dateien" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DocFolderPaths" /v "Personal" /t "Reg_SZ" /d "C:\Spiele\Eigene Dateien" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DocFolderPaths" /v "Matthias" /t "Reg_SZ" /d "C:\Spiele\Eigene Dateien" /f:: Starten des Programms
start %pfad%
:: Pause damit das Spiel "in Ruhe" starten kann
ping -n 10 localhost > nul
:: Prüfung ob das Spiel noch läuft
:suche
tasklist |find /i "%p2%" >nul
if %errorlevel% == 0 (
ping -n 5 localhost > nul
goto suche
) else (goto zurueck)
:zurueck
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Personal" /t "REG_EXPAND_SZ" /d "D:\Eigene Dateien" /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Personal" /t "Reg_SZ" /d "D:\Eigene Dateien" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DocFolderPaths" /v "Personal" /t "Reg_SZ" /d "D:\Eigene Dateien" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DocFolderPaths" /v "Matthias" /t "Reg_SZ" /d "D:\Eigene Dateien" /f
Es funktioniert zwar rudimentär, aber die Hoffnung, dass ich z.B. einfach in einer Verknüfung "c:\spiel.bat c:\spielpfad spiel.exe" angeben kann und die Parameter korrekt übergeben werden, hat sich nicht erfüllt. Das ganze funktioniert nur bei Aufruf aus der Kommandozeile.
Vielleicht gibt es ja für das Problem eine viel elegantere Lösung und ihr schlagt Euch die Hände über dem Kopf zusammen bei meinem Noob-Copy/Paste-Batch. Der ständige Ping im Hintergrund verbraucht ja auch ein paar Ressourcen. Ich würde mich daher über eine Lösung sehr freuen.
Vielen Dank im Voraus,
MaDtze
P.S.: Betriebssystem ist übrigens Win XP Prof.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 90066
Url: https://administrator.de/forum/eigene-dateien-nach-programmende-per-batch-neu-stetzen-90066.html
Ausgedruckt am: 09.04.2025 um 06:04 Uhr
1 Kommentar
Hallo MaDtze,
probier es doch mal mit
Das hat bei mir gerade super funktioniert.
start.bat
Alternative dazu könntest du dir ja auch eine "größer" Batch erstellen, eine die dir ein kleines Auswahlmenue der zu startenden Spiele gibt.
Dan hast du auch nur die Verknüpfung zur Batch auf dem Desktop und nicht eine für jedes Spiel (nen Icon kann man der ja auch zuweisen)
Gruß Arano
probier es doch mal mit
"C:\spiele.bat" parm1 parm2
start.bat
@echo off
echo Param 1: %1
echo Param 2: %2
pause
Alternative dazu könntest du dir ja auch eine "größer" Batch erstellen, eine die dir ein kleines Auswahlmenue der zu startenden Spiele gibt.
1 - Spiel A
2 - Spiel B
3 - Spiel C
Eingabe:_
2 - Spiel B
3 - Spiel C
Eingabe:_
Dan hast du auch nur die Verknüpfung zur Batch auf dem Desktop und nicht eine für jedes Spiel (nen Icon kann man der ja auch zuweisen)
Gruß Arano