Ich bin viel am Herumprobieren mit vielen teils umfangreichen Scripts, Plugins und Mods. Hierfür stöbere ich in mehreren Foren. Viele dürften wissen, dass sich einige Scripter mehr um die "Sauberkeit" ihres Spielverzeichnis bemühen als andere.
Natürlich kommt es vor, dass sich auch mal ein Script nicht so verhält wie ich es aus der Beschreibung gelesen habe, unerwünschte Nebeneffekte erzeugt oder garnicht mit anderen harmoniert. In diesem Fall sollen die relevanten Dateien nach ggf. vorhandener Deinstallation natürlich wieder weg. Da ich nicht für jedes Script in 5 verschiedenen Unterordnern teils über 100, manchmal einfach chaotisch benannte Dateien, suchen und per Hand vernichten will, schreib ich für die bei mir auf Platte liegenden Scripts Batch-Dateien.
Die Grundidee entspricht natürlich einer Kopie von einigen Scriptern die eine solche bereits mitliefern. Das Ganze sieht aber noch nicht ganz so aus wie ich das gern hätte. Es folgen der Beispielcode der Batch und bisherige Versuche.
Code: Alles auswählen
@echo off
cls
echo.
echo Uninstaller: ... Test Script ...
echo.
echo Sofern eine Deinstallations-Routine vorhanden ist sollte diese
echo VOR dem Entfernen angewandt und das Spiel gespeichert werden!
:Frage
echo.
echo Soll ... Test Script ... jetzt entfernt werden?
set /P X= (J)a / (N)ein / (E)xit:
echo.
if /I "%X%"=="J" goto :Ja
if /I "%X%"=="N" goto :Nein
if /I "%X%"=="E" goto :Exit
cls
echo.
echo Ungueltige Eingabe ...
echo.
echo (J)a = Dateien werden entfernt.
echo.
echo (N)ein = Deinstallation wird abgebrochen.
echo.
echo (E)xit = Abbrechen und Fenster schliessen.
goto Frage
:Ja
cls
echo.
echo Folgende Dateien werden entfernt:...
echo.
dir ..\scripts\"kopie*" ..\scripts.uninstall\"kopie*"
rem del ..\director\""
rem del ..\documents\""
rem del ..\mods\""
del ..\scripts\"kopie*"
del ..\scripts.uninstall\"kopie*"
rem del ..\t\""
echo.
echo.
echo A C H T U N G ! !
echo.
echo Wenn der beinhaltete Mod als Fakepatch angewandt wurde, muss die
echo entsprechende ".cat" und ".dat" manuell entfernt werden.
echo.
pause
goto Ende
:Nein
cls
echo.
echo Die Deinstallation wurde abgebrochen.
echo Es wurden keine Dateien entfernt.
echo.
pause
goto Exit
:Ende
echo.
rem del ..\scripts.delete\"delete testscripts.bat" >nul
:Exit
exit
del "test.script*"
löscht die entsprechenden Dateien ohne dies zu kommentieren. Aufgrund der wildcard " * " hätte ich aber gern alle angesprochenen Dateien dargestellt.
Das Umleiten in eine Logdatei per:
... > dellog.txt oder
... >> dellog.txt
erzeugt bei mir eine inhaltlose Datei mit dem angegebenen Namen. Davon abgesehen soll die Batch, Dateien löschen und nicht weitere erstellen. Die Anzeige hätte ich gern wie früher in DOS einfach im aktuellen Fenster gelistet.
dir "test.script*"
del "test.script*"
... kommt meiner Vorstellung relativ nahe. Mich stört allerdings der unnötige Platzverbrauch durch die Formatierung und das Layout. Unnötig finde ich das Datum und den Zeitstempel an jeder Datei und ganz besonders die Laufwerksinformation, Seriennummer und am Ende die Zusammenfassung der Dateien für jeden Ordner. Sogar das Verzeichnis der Batch selbst wird nebst einiger Zeilenumbrüche noch mit angegeben.
Schon bei kleinen Scripts mit beispielsweise 4 Dateien in 4 Ordnern wird die vorgemerkte Fenstergröße des DOS-Fensters gesprengt. Hat jemand eine Idee, wie ich das ändern kann ohne per "echo" jede Datei einzeln anzeigen zu lassen? Insbesondere bei umfangreicheren Scripts deren Dateinamen strukturiert sind würde ich gern die wildcard nutzen.
Die Anzeige wünsche ich mir aufgrund der wildcard. Sollten damit unbeabsichtigt Dateien von anderen Mods gelöscht werden muss ich das nicht erst inGame an meinem explodierenden Schiff erkennen um dann mit der Suche zu beginnen.
Vielen Dank
X2return