madtze
Goto Top

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:
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.

Content-Key: 90066

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

Printed on: April 23, 2024 at 18:04 o'clock

Member: Arano
Arano Jun 19, 2008 at 13:51:32 (UTC)
Goto Top
Hallo MaDtze,

probier es doch mal mit
"C:\spiele.bat" parm1 parm2  
Das hat bei mir gerade super funktioniert.
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:_

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