Batch-Datei

  • Hi,


    ich möchte in einer Batchdatei folgendes ausführen lassen:


    Wenn eine Datei X.abc soll gelöscht werden, falls Datei X.def NICHT existiert.


    D.h. falls eine Datei, die den gleichen Dateinamen (nicht Endung, wobei allerdings die Endungen immer die selben sind), wie die gerade vom Programm überprüfte hat, nicht existiert, soll selbige gelöscht werden.


    Wäre es nur eine Datei könnte man das ganz simpel mit IF EXIST "dateiname" "befehl" machen. Hier braucht man wohl eine Variable


    Wie bekomme ich das hin? Hoffe ihr könnt mir helfen.




    edit: Ich denke, man kann die Frage reduzieren auf:
    "Wie bekomme ich Teile eines Dateinamens in eine Variable?"

  • Zitat

    Original von Chise
    Bin mir jetzt nicht sicher, ob ich die Frage richtig verstanden hab, aber ich würde sagen: Mit einem array.
    Der array muss dann eben alle Dateien enthalten, die du haben willst.


    Schwierig, da dauernd neue Dateien mit unterschiedlichen Namen hinzukommen... Das würde mehr Arbeit als Sinn machen...


    Mal ein Beispiel: Die Batchdatei geht ein Verzeichnis mit folgenden Daten durch:


    A.yyy
    A.xxx
    B.yyy
    B.xxx
    C.yyy


    Sie schaut sich alle Daten mit *.yyy an:


    A.yyy --> A.xxx gibt es, also löscht die Batchdatei A.yyy NICHT.
    B.yyy --> B.xxx gibt es, also löscht die Batchdatei A.yyy NICHT.
    C.yyy --> C.xxx gibt es NICHT, also löscht die Batchdatei C.yyy



    Wie gesagt, ich stelle mir das so vor, dass ich mit folgendem Befehl mache:

    Code
    IF NOT EXIST  %DATEINAME%.xxx  DEL %DATEINAME%.yyy


    Problem ist halt die Variable %Dateiname%. Die wär ja laufend anders und müsste irgendwie eingelesen werden.


    MfG Jul007