Batch-Datei: Übersicht veränderter Dateien

Huhu werte Experten,
Mithilfe einer einfachen „.bat“ möchte ich eine Auswahl bestimmter Dateien in unterschiedlichen Verzeichnissen löschen. Ebenfalls ist dort zu Anfang eine Ja/Nein Frage eingearbeitet. Im Prinzip funktioniert schon alles so wie’s soll jedoch hätte ich am Ende gern eine Liste aller Dateien, die von der Datei gelöscht wurden, nach Möglichkeit ohne mit „echo“ jede einzelne Datei nennen zu müssen.

Fallbeschreibung:
Ich spiele ein Spiel namens X3 Terran Conflict.
Hierfür erlaubt der Entwickler die Modifikation des Spielablaufs durch die Mitglieder der Community mithilfe von Scripten im xml-Format.

Es gibt sehr viele unterschiedliche Erweiterungen von vielen unterschiedlichen Spielern. Einige pflegen ihr Spielverzeichnis nicht so wie andere. Wenn ich eine bestimmte Erweiterung nicht mehr nutzen möchte, müssen die entsprechenden Dateien aus dem Spielverzeichnis gelöscht werden. Um nun nicht jede einzelne Datei mit dem Archiv vergleichen und löschen zu müssen lasse ich das von einer Batch-Datei erledigen.

In der Regel sind das 4-50 Dateien in 2-5 Verzeichnissen die gelöscht werden sollen. Wie bringe ich der Batch bei, mir die Aktionen anzuzeigen ohne z.B. mit „@Echo on“ den Befehl ansich aufzulisten?
Ein Befehl sieht z.B. so aus:

del …\scripts"plugin.test*"

  • gilt dann für alle Dateien deren Name mit „plugin.test“ beginnt.

Und ich würde gern sehen welche Dateien mit diesem Befehl gelöscht wurden.

Vielen Dank
Willi

Ein Befehl sieht z.B. so aus:
del …\scripts"plugin.test*"

  • gilt dann für alle Dateien deren Name mit „plugin.test“
    beginnt.

Und ich würde gern sehen welche Dateien mit diesem Befehl
gelöscht wurden.

Hallo Willi,

kann es sein daß du dieses meinst:

del …\scripts\plugin.test* > C:\Loesch\Loesch.txt
bzw.
del …\scripts\plugin.test* >> C:\Loesch\Loesch.txt

Gruß
Reinhard

Hi Reinhard, danke schonmal für die schnelle Antwort.

kann es sein daß du dieses meinst:
del …\scripts\plugin.test* > C:\Loesch\Loesch.txt
bzw.
del …\scripts\plugin.test* >> C:\Loesch\Loesch.txt

Ich hab mich ja im Vorfeld schonmal ein wenig belesen und wenn ich mich nicht irre, erzeugt „>“ in erster Linie eine flexible Umleitung (z.B. zu Drucker oder wie von Dir beschrieben in ein Logfile) wobei ich den Unterschied zwischen „>“ und „>>“ grad nicht kenne.

Das trifft es leider nicht ganz. Also zumindest hätte ich keine Verwendung für ein Logfile. Was ich mir wünschen würde, ist eine einfache Anzeige im aktuellen Fenster - also nur dass ich kurz überfliegen kann ob aufgrund meiner benutzten wildcard " * " versehentlich Dateien von anderen Scripts mitgelöscht wurden.

Als Beispiel:
Ich habe mehrere Dateien im Verzeichnis:

  • test.script.abc.xml
  • test.script.abd.xml
  • test.script.abe.xml
  • test.script.123.xml

Angenommen die Vierte Datei gehört zu einem anderen Script und der Syntax lautet:

  • del test.script*
    würde die Vierte Datei ungewollt gelöscht und müsste von mir ersetzt werden weil sonst Teile des Spiels unsauber oder garnicht laufen.

Ein Logfile wäre eine Notlösung mit der ich leben könnte sofern ich nicht herausfinde wie es anders lösbar ist. Ich hoffe es gibt einen Weg die aktuell bearbeiteten Dateien direkt im ausführenden Fenster darzustellen.

Ich weiss nicht ob ich’s besser formuliert bekomme.
Vielen Dank
X2return

Hallo,

> löscht die Datei ggf. vorher, >> nicht.

Mach doch ein „dir“ vor dem „del“ und dann ein „pause“.

Statt Pause kannst Du mit „ping“ auch x Sekunden warten, z.B.

ping -n 1 -w 1000 192.0.0.0 >NIL

für 1000ms = 1s.

Ggf. werden beim löschen in allen Unterordnern (mit Option /s) die gelöschten Dateien angezeigt

Gruß
achim

kann es sein daß du dieses meinst:
del …\scripts\plugin.test* > C:\Loesch\Loesch.txt
bzw.
del …\scripts\plugin.test* >> C:\Loesch\Loesch.txt

Umleitung (z.B. zu Drucker oder wie von Dir beschrieben in ein
Logfile) wobei ich den Unterschied zwischen „>“ und „>>“ grad
nicht kenne.

Hallo Willi,

existiert loesch.txt noch nicht verhalten sich beide Zeichen gleich.
existiert loesch.bat löscht „>“ die existierende loesch.txt und legt
eine neue an.
„>>“ hängt das Neue in der existierenden loesch.txt unten an.

Gruß
Reinhard

Hi Reinhard

existiert loesch.txt noch nicht verhalten sich beide Zeichen
gleich.
existiert loesch.bat löscht „>“ die existierende loesch.txt
und legt
eine neue an.
„>>“ hängt das Neue in der existierenden loesch.txt unten an.

Hm, ok - damit werd ich mal herumprobieren. Vielleicht finde ich ja irgendwas was ich anstelle der „lösch.txt“ hinter das „>“ schreiben kann (screen, window) oder einfach mal nichts *g*
Es muss eine Möglichkeit geben, das im aktuellen Fenster darzustellen. Denn bei der Installation unzähliger teils veralteter Tools etc. werden auch oftmals die veränderten Dateien gelistet - ob kopiert, installiert, überschrieben oder wie auch immer sei mal dahin gestellt. Ich kann mir nicht vorstellen ,.dass sich davon jeder die Mühe macht und ein echo für alle ggf. 1000de Dateien reintippt nur um es bei jeder Aktualisierung wieder zu zerpflücken.

Soweit ich mich erinnere war das im DOS-prompt zumindest vor WinXP auch üblich, dass jede mit den normalen Befehlen kopierte / geschriebene / gelöschte Datei gelistet wurde. Ich hab keinen Dunst warum das jetzt anders ist.

Grüße
X2return

Hi Reinhard,

kann es sein daß du dieses meinst:
del …\scripts\plugin.test* > C:\Loesch\Loesch.txt
bzw.
del …\scripts\plugin.test* >> C:\Loesch\Loesch.txt

existiert loesch.txt noch nicht verhalten sich beide Zeichen
gleich.
existiert loesch.bat löscht „>“ die existierende loesch.txt
und legt
eine neue an.
„>>“ hängt das Neue in der existierenden loesch.txt unten an.

Ich hab das jetzt ausprobiert:
del „kopie*“ >dellog.txt
del „kopie*“ >>dellog.txt

Die Dateien heissen jeweils „Kopie von …“
In beiden Fällen wird die entsprechende Datei inhaltlos erzeugt - 5 Dateien wurden gelöscht. Irgendeine Idee warum?

Vielen Dank
Willi

Mach doch ein „dir“ vor dem „del“ und dann ein „pause“.
Statt Pause kannst Du mit „ping“ auch x Sekunden warten, z.B.
ping -n 1 -w 1000 192.0.0.0 >NIL

Ich hab das jetz mal so probiert:
dir del „kopie*“

Wider Erwarten sieht das schonmal gut aus! Nur die berührten Dateien werden im aktuellen Fenster gelistet so wie ich das meinte. Allerdings werden die Dateien nur gelistet aber nicht mehr gelöscht.
Den „del“ Befehl müsste ich dann wohl in der nächsten Zeile wiederholen - Immernoch besser als jede Datei einzeln mit echo darzustellen.

Jetzt schau ich noch ob ich n paar kleine Schönheitskorrekturen hinbekomme :smiley: Aufgrund der vorgemerkten Abmessungen des DOS-Fensters sind Daten wie Datum und Zeitstempel eigtl. eher unnötig.
/p = zuviele Bestätigungen erforderlich (Seitenwechsel) Das ganze soll für den Nutzer möglichst bequem sein.
/w = nicht sicher ob mir das gefällt weil mitunter auch Dateien mit längeren Namen dabei sind.
/s = nicht relevant, da die einzelnen Verzeichnisse direkt angesprochen werden und i.d.R. keine weiteren Unterverzeichnisse existieren und keinesfalls irgendein Ordner gelöscht werden darf

Eine Pause (mit oder ohne Eingabe) benötige ich an dieser Stelle nicht. Diese folgt am Ende. Mal sehen, vielleicht zeig ich Euch das Resultat wenn ich damit zufrieden bin.Zwar wird das vermutlich nur ein Schmunzeln zuzüglich sowas wie „süß“ erzeugen aber … jeder fängt ja mal an :smiley:

Merci
Willi

Hm, ok ganz so wie ich mir das dachte ist es immernoch nicht.

„dir“ bezieht sich weniger auf die einzelnen Dateien als vielmehr auf den Ordner ansich. Es werden bei jedem Schritt LW-Informationen, Seriennummer und am Ende eine Zusammenfassung der Dateien zuzüglich dem Verzeichnis der Batch angezeigt.

Es sollen wie gesagt mitunter bis zu 100 Dateien in 5 verschiedenen Ordnern gelöscht werden (Die jeweilige Dateiart ist immer an der gleichen Stelle zu finden, die Batch müsste also eigentlich nicht danach suchen).

Folgendes hab ich probiert:
dir …\scripts"kopie*" …\scripts.uninstall"kopie*"
del …\scripts"kopie*" …\scripts.uninstall"kopie*"

und:
dir …\scripts"kopie*"
dir …\scripts.uninstall"kopie*"
del …\scripts"kopie*"
del …\scripts.uninstall"kopie*"

In der Anzeige macht das keinen Unterschied. Durch die unglücklichen Zusatzinformationen fallen auch sämtliche Parameter wie /p /w ins Wasser denn schon bei nur 4 Dateien in 4 Ordnern wird das Fenster zu klein.

Grüße
Willi

Mach doch ein „dir“ vor dem „del“ und dann ein „pause“.
Statt Pause kannst Du mit „ping“ auch x Sekunden warten, z.B.
ping -n 1 -w 1000 192.0.0.0 >NIL

Ich hab das jetz mal so probiert:
dir del „kopie*“

Hallo Willi,

NIL wird wohl nul heißen.
Ich glaube so meinte das Wilbert nich, eher so:
Dir …
Del …

Erstelle mal eine batch mit diesem Inhalt:

@echo off
for %%A in (K:\kwWilli\kopie*) do call K:\kwWilli\kwloesch2.bat %%A
type k:\kwwilli\loesch.txt
pause

In der batch wird ja eine weitere batch namens kwloesch2.bat
aufgerufen, gib der diesen Inhalt:

echo %1 >>k:\kwwilli\loesch.txt
del %1

Gruß
Reinhard

Hi Reinhard,

Erstelle mal eine batch mit diesem Inhalt:

@echo off
for %%A in (K:\kwWilli\kopie*) do call
K:\kwWilli\kwloesch2.bat %%A
type k:\kwwilli\loesch.txt
pause

In der batch wird ja eine weitere batch namens kwloesch2.bat
aufgerufen, gib der diesen Inhalt:

echo %1 >>k:\kwwilli\loesch.txt
del %1

Da ich hier ja auch ein wenig am Experimentieren bin werde ich, nachdem ich den Syntax erfolgreich recherchiert habe, das der Neugierde halber versuchen.
„for %%A“ Ich kann die Funktion keines Einzigen dieser Zeichen auch nur ansatzweise erahnen.

Dauerhaft ist diese Lösung allerdings nichts für mich. Die Batch soll eigentlich Dateien löschen anstatt weitere zu erstellen und wenn ich das richtig sehe, hab ich dann 3 Dateien für jedes vorhandene Script herumliegen.

Grüße
Willi

Hi Reinhard,

Erstelle mal eine batch mit diesem Inhalt:

@echo off
for %%A in (K:\kwWilli\kopie*) do call
K:\kwWilli\kwloesch2.bat %%A
type k:\kwwilli\loesch.txt
pause

In der batch wird ja eine weitere batch namens kwloesch2.bat
aufgerufen, gib der diesen Inhalt:

echo %1 >>k:\kwwilli\loesch.txt
del %1

Hallo Willi,

Da ich hier ja auch ein wenig am Experimentieren bin werde
ich, nachdem ich den Syntax erfolgreich recherchiert habe, das
der Neugierde halber versuchen.

großzügig von dir *grien*

„for %%A“ Ich kann die Funktion keines Einzigen dieser Zeichen
auch nur ansatzweise erahnen.

Beginnen wir mit der Klammer, in ihr steht K:\kwWilli\kopie*
Da FOR auch das Jokerzeichen* kennt stehen gewisserweise in
der Klammer für FOR alle Dateien in K:\kwwilli die mit
kopie beginnen im Namen.

So, jetzt steht ja da die Syntax
FOR variable IN (Klammerinhalt) Do irgendwas
Also eine For-Schleife wie in vielen Programmiersprachen.
Die Variabele %%A nimmt im Durchlauf dieser FOR-Schleife
nacheinander alle Werte an die in der Klammer stehen.

Umgesetzt für
for %%A in (K:\kwWilli\kopie*) do call K:\kwWilli\kwloesch2.bat %%A
bedeutet das, da %%A nacheinander alle Dateien, genauer deren Pfade
und Namen darstellt, daß das nach dem DO so oft aufgerufen wird wie
es Dateien gibt auf die kopie* zutrifft.

Nach dem Do steht call K:\kwWilli\kwloesch2.bat %%A
Call dient u.a. zum Starten einer anderen Batch, hier kwloesch2.bat.
Als Parameter wird %%A übergeben.

Pro Batch sind 9 Parameter erlaubt die man der batch übergeben kann.
Zugriff darauf haste mit %1, %2, …, %9
%0 ist der name der batch selbst.

Dauerhaft ist diese Lösung allerdings nichts für mich. Die
Batch soll eigentlich Dateien löschen anstatt weitere zu
erstellen und wenn ich das richtig sehe, hab ich dann 3
Dateien für jedes vorhandene Script herumliegen.

Wieso das denn? Verstehe ich nicht, schreib doch alles in ein
File und nach type file machste del file, feddisch.

Mir ist sowieso unklar warum du erst vieles löschst und dann
wieder manche Dateien wiederherstellen willst.
Ist es da nicht besser erstmal alles was kopie* heißt aufzulisten,
in der Liste anzuklicken welches davon gelöscht werden soll
und nur die werden gelöscht?

Nur eine Idee. Gibt noch andere. Hast du Excel?
Und, laß bitte „Script“ weg, nehme Ordner, Unterordner, Datei…

Vllt. ginge auch VBS aber mir ist von dem was du da möchtest
einiges unklar.

Gruß
Reinhard

Dank Eurer Tips habe ich das für mich passende „Fine-tuning“ ganz unerwartet per [F1] im Windows Hilfe- und Supportcenter gefunden … seit Win 3.11 bin ich dabei und hab noch nie die Hilfe benutzt :smiley:

dir /s /b …\scripts"datei*"
echo.
dir /s /b …\scripts.uninstall"datei*"
del /s /b …\scripts"datei*"
del /s /b …\scripts.uninstall"datei*"

Alle betroffenen Dateien werden mit Dateipfad gelistet und anschliessend gelöscht.
/b entfernt das ganze „Drumherum“ (Verzeichnisinfo, Datenträgerseriennummer, Zusammenfassung etc.)
/s fügt den Dateipfad hinzu (ggf. auch Unterordner was hier ja keine Relevanz hat, da ich mich dank …\Ordner\ bereits im richtigen Verzeichnis befinde) Ich könnte das auch ohne Pfadangabe für das übergeordnete Verzeichnis vereinfachen aber man weiss ja nie wann mal wer wo irgendwelche Backups ablegt oder so.

Einzig verbleibender Wermutstropfen: Da ich alle Dateien oder wildcards doppelt eintragen muss, ist die 100%ige Funktion anfälliger für Tipfehler aber damit komme ich irgendwie zurecht.

Anbei die fertige Vorlage für alle Scripts, welcher nur noch die jeweils entsprechenden Dateinamen eingefügt werden müssen.

@echo off
cls
echo.
echo Uninstaller: …
echo.
echo Sofern eine Deinstallations-Routine vorhanden ist sollte diese
echo VOR dem Entfernen angewandt und das Spiel gespeichert werden!

Frage

echo.
echo Soll … 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 = „Cheftaste“ Abbrechen und Fenster schliessen.
goto Frage

Ja

cls
echo.
echo Folgende Dateien werden entfernt:…
echo.
dir /s /b …\director"
echo.
dir /s /b …\documents"
echo.
dir /s /b …\mods"
echo.
dir /s /b …\scripts"
echo.
dir /s /b …\scripts.uninstall"
echo.
dir /s /b …\t"

del …\director"
del …\documents"
del …\mods"
del …\scripts"
del …\scripts.uninstall"
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.
del …\scripts.delete"Delete all … Script Files.bat" >nul

Exit

exit

Vielen Dank für Eure Untestützung
Willi

Hallo Willi,

Dank Eurer Tips habe ich das für mich passende „Fine-tuning“
ganz unerwartet per [F1] im Windows Hilfe- und Supportcenter
gefunden … seit Win 3.11 bin ich dabei und hab noch nie die
Hilfe benutzt :smiley:

in der Tat, F1 für Windows selbst benutze ich auch nahezu nie.
Bei/in anderen Programmen, auch MS-Office ist das anderst.

Bei den batchbefehlen benutze ich in einer batch z.B.:
help > K:\help.txt
bzw. bei Start—Ausführen
cmd /c help > K:\help.txt

Darin sind dann alle Befehle aufgelistet und kurz erklärt.
Will ich genaueres zu einem befehl wissen:
help dir > K:\dir.txt
bzw. bei Start—Ausführen
cmd /c help dir > K:\help.txt

echo.

Mist Alzheimer :frowning: Hab vergessen was der Punkt bewirkt.

/s fügt den Dateipfad hinzu (ggf. auch Unterordner was hier ja
keine Relevanz hat,

Stand/steht das so irgendwo mit „fügt den Dateipfad hinzu“?
Ich kenne das s als Abkürzung für subdirectory.
Wenn man es angibt werden beginnend mit dem angegeben Ordner
auch all dessn Unterordner durchsucht.

da ich mich dank …\Ordner\ bereits im
richtigen Verzeichnis befinde) Ich könnte das auch ohne
Pfadangabe für das übergeordnete Verzeichnis vereinfachen aber
man weiss ja nie wann mal wer wo irgendwelche Backups ablegt
oder so.

Plan bitte auch ein daß auf einem anderen PC die .bat in
einem falschen Ordner steht und gestartet wird.
Dann ergibt
del …\scripts"
ggfs. etwas unerwartetes.

Was bedeuten denn die Gänsefüßchen am Ende?

Einzig verbleibender Wermutstropfen: Da ich alle Dateien oder
wildcards doppelt eintragen muss, ist die 100%ige Funktion
anfälliger für Tipfehler

Lese bitte meine Beiträge zu FOR und Aufruf von Unterbatches
nochmal.

Gruß
Reinhard

„for %%A“ Ich kann die Funktion keines Einzigen dieser Zeichen
auch nur ansatzweise erahnen.

Beginnen wir mit der Klammer, in ihr steht K:\kwWilli\kopie*
Da FOR auch das Jokerzeichen* kennt stehen gewisserweise in
der Klammer für FOR alle Dateien in K:\kwwilli die mit
kopie beginnen im Namen.

So, jetzt steht ja da die Syntax
FOR variable IN (Klammerinhalt) Do irgendwas
Also eine For-Schleife wie in vielen Programmiersprachen.
Die Variabele %%A nimmt im Durchlauf dieser FOR-Schleife
nacheinander alle Werte an die in der Klammer stehen.

Umgesetzt für
for %%A in (K:\kwWilli\kopie*) do call
K:\kwWilli\kwloesch2.bat %%A
bedeutet das, da %%A nacheinander alle Dateien, genauer deren
Pfade
und Namen darstellt, daß das nach dem DO so oft aufgerufen
wird wie
es Dateien gibt auf die kopie* zutrifft.

Nach dem Do steht call K:\kwWilli\kwloesch2.bat %%A
Call dient u.a. zum Starten einer anderen Batch, hier
kwloesch2.bat.
Als Parameter wird %%A übergeben.

Pro Batch sind 9 Parameter erlaubt die man der batch übergeben
kann.
Zugriff darauf haste mit %1, %2, …, %9
%0 ist der name der batch selbst.

Vielen Dank für die Ausführliche Erklärung :smile: In groben Zügen kann ich jetzt nachvollziehen was dort passiert.

Dauerhaft ist diese Lösung allerdings nichts für mich. Die
Batch soll eigentlich Dateien löschen anstatt weitere zu
erstellen und wenn ich das richtig sehe, hab ich dann 3
Dateien für jedes vorhandene Script herumliegen.

Wieso das denn? Verstehe ich nicht, schreib doch alles in ein
File und nach type file machste del file, feddisch.

Du hast recht - an Temporärdateien, die ich am Ende der eigentlichen Batch wieder lösche hatte ich nicht gedacht. Dadurch gewinnt dieser Weg wieder an Relevanz sofern sich das Spielverzeichnis nicht zufällig in einem geschützten Bereich von z.B. Windows 7 befindet.

Mir ist sowieso unklar warum du erst vieles löschst und dann
wieder manche Dateien wiederherstellen willst.
Ist es da nicht besser erstmal alles was kopie* heißt
aufzulisten,
in der Liste anzuklicken welches davon gelöscht werden soll
und nur die werden gelöscht?

An dieser Stelle ist eine kleine, hiermit ausgesprochene Entschuldigung meinerseits fällig!
Ich bin ein von Natur aus ungeduldiger Mensch und berate mich (u.a. hier im Forum) teilweise schon vorab und während der Arbeit an einem „Projekt“ :smiley: , mit anderen Menschen.
Ich bezeichne das gern als mein ganz persönliches „Kopfgewitter“ (brainstorming) um schon in der Entstehungsphase möglichst viele Blickwinkel und Variablen einbringen zu können. Die Warscheinlichkeit, dass bei einer halbfertigen Sache aufgrund guter Einwände oder Kritik alles umgeworfen und von NULL an neu gemacht werden muss, sinkt damit erheblich. Nachteil daran … Eine ggf. existente Roadmap wird damit sprunghaft ungenau und meißt kann auch kaum jemand meinen wirren Gedankensprüngen folgen. Ob das jetzt gut oder schlecht ist oder für wen das zutrifft kann ich nicht sagen. Also IMHO bin ich nicht überdurchschnittlich intelligent falls das eben so klang!

Zum Deinen Fragen:
Das hab ich vielleicht unglücklich formuliert. Ich möchte nichts wiederherstellen.
Der verwendete Dateiname "Kopie… erklärt sich im Prinzip durch mein Persönlichkeitsprofil im letzten Absatz.
Es wird keine solchen Dateien geben. Ich hatte nur für die Testumgebung eine Beispielhafte Ordnerstruktur erstellt um zu sehen wie sich die Batch verhält wenn mehrere Verzeichnisse bearbeitet werden.

Um nun nicht jedesmal neue 0 byte Test-Dateien erstellen zu müssen, habe ich die vorhandenen kurzerhand kopiert und diese gelöscht, da ich ebenfalls die Wirkung mit mehreren Dateien in verschiedenen Verzeichnissen sehen wollte.

Ich sag es Dir: Perfektionismus und Halbwissen kann eine mitunter überaus nervenaufreibende und zeitraubende Kombination sein :smiley:

Nur eine Idee. Gibt noch andere. Hast du Excel?
Und, laß bitte „Script“ weg, nehme Ordner, Unterordner,
Datei…

Ich liebe Excel! Fast alles was um mich herum so geschiet (Spiele, Umzug und vieles andere) verarbeite ich in Exceltabellen. Auch hier beschränkt sich mein Wissen aber weitestgehend auf die allgemeinen einfachen Programmfunktionen und Formeln. Falls Du in Richtung VB dachtest - auf diesem Gebiet bin ich ebenfalls weitestgehend ungebildet.
Ich hab einfach ein Problem mit Lesen, bzw. trockner Theorie und Betriebsanleitungen generell.

Was meinst Du mit „Script“ weglassen? Die Spielinhalte, die ich mit der Batch entfernen möchte sind nunmal überwiegend spielerweiternde oder -verbessernde Scriptfunktionen im .xml format.

Vllt. ginge auch VBS aber mir ist von dem was du da möchtest
einiges unklar.

Ich hoffe Dir mit dem gezeigten vollständigen Code in meiner vorherigen Antwort auch diese Frage beantworten zu können.

Alles in Allem habe ich in letzter Zeit mehrere Themen in dem Bereich gefunden, die mich interessieren. Ich befürchte, dass ich um den ein oder anderen C++ Grundkurz (oder ähnliches) nicht herumkommen werde. Nachdem was ich bisher darüber gelesen habe, lässt sich davon vieles auch für andere Programmiersprachen und für unterschiedlichste Verwendungszwecke interpretieren, wenn man denn die Basis mal „beherrscht“.

Grüße
Willi

Hi Reinhard,

echo.

Mist Alzheimer :frowning: Hab vergessen was der Punkt bewirkt.

Diese Zeile entspricht einem Zeilenumbruch bzw. eigentlich Zwei - eine leere Zeile für die Übersicht (wie ich finde)

/s fügt den Dateipfad hinzu (ggf. auch Unterordner was hier ja
keine Relevanz hat,

Stand/steht das so irgendwo mit „fügt den Dateipfad hinzu“?
Ich kenne das s als Abkürzung für subdirectory.
Wenn man es angibt werden beginnend mit dem angegeben Ordner
auch all dessn Unterordner durchsucht.

Nein, das steht nirgends so. Im Prinzip habe ich damit die Wirkung beschrieben die ich bemerkte, nachdem ich /s zusätzlich zu /b benutzt habe.

Plan bitte auch ein daß auf einem anderen PC die .bat in
einem falschen Ordner steht und gestartet wird.
Dann ergibt
del …\scripts"
ggfs. etwas unerwartetes.

Auch damit hast Du natürlich recht aber die hier angebotenen Spiel-Erweiterungen werden in der Regel als Zip inkl. vollständiger Verzeichnisstruktur angeboten, wodurch der Nutzer nur das Zip direkt in den Hauptordner des Spiels entpacken muss und alle Dateien im entsprechenden Ordner landen - das gilt dann natürlich auch für die Batch.
Sollte das Zip-Archiv in einen falschen Ordner entpackt werden, wird ohnehin keine dieser Dateien berücksichtigt - die relativen Pfade zwischen der Batch und den angesprochenen Dateien stimmen aber.

Was bedeuten denn die Gänsefüßchen am Ende?

Die bedeuten eigentlich garnichts. Nur im Falle von vorhandenen Leerzeichen im Dateinamen muss selbiger in Anführungszeichen verpackt werden. Das eine welches sich dort verlaufen hat, hab ich nur vergessen.
Ich werd seine Mama ausfindig machen und kontaktieren, versprochen! :smiley:

Einzig verbleibender Wermutstropfen: Da ich alle Dateien oder
wildcards doppelt eintragen muss, ist die 100%ige Funktion
anfälliger für Tipfehler

Lese bitte meine Beiträge zu FOR und Aufruf von Unterbatches
nochmal.

Ja … mit den Temporärdateien ist dass dann wohl nicht der Fall - ich werds mir wie gesagt bei Gelegenheit mal angucken. Im Moment hab ich heute bestimmt … mindesten Ein oder sogar Zwei neue Zeichen gelernt und mein Hirn damit mehr als gewöhnlich beansprucht ^^
Mit anderen Worten: Aktuell bin ich relativ zufrieden mit dem Werk - das kann morgen wieder ganz anders aussehen.

Grüße
Willi