rap: In BATCH aktuellen Pfad in Variable schreiben

Hallo,

Mein "Script" sieht bisher so aus:

cd %systemroot%\prefetch  
del *.* /q /f

Vor dem Lösch-Befehl möchte ich überprüfen, ob der CD-Befehl funktiniert hat (also ob in das Verzeichnis %systemroot%\prefetch gewechselt wurde). Denn wenn der aktuelle Benutzer keine Lese/Schreibrechte auf das Verzeichnis hat, werden die falschen Dateien gelöscht...

Ich würde jetzt gerne mit CHDIR das aktuelle Verzeichnis abfragen, aber um die Ausgabe des IST-PFADS mit dem SOLL-Pfad zuvergleichen, müsste ich den aktuellen Pfad ja irgendwie in eine Variable bekommen. Hab aber keine Ahnung wie...

  1. Vor dem Lösch-Befehl möchte ich überprüfen, ob der CD-Befehl funktiniert hat (also ob in das Verzeichnis %systemroot%\prefetch gewechselt wurde). Denn wenn der aktuelle Benutzer keine Lese/Schreibrechte auf das Verzeichnis hat, werden die falschen Dateien gelöscht...

    Was spricht gegen del %systemroot%\prefetch\*.* ?

    1. Was spricht gegen del %systemroot%\prefetch\*.* ?

      Das ist eine gute Idee, dagegen spricht natürlich nichts.
      Trotzdem würde mich interessieren, wie ich die Ausgabe eines Befehls in eine Variable speichere also z. B. die Ausgabe von CHDIR in die Variable %PWD%

      1. Hallo,

        Trotzdem würde mich interessieren, wie ich die Ausgabe eines Befehls in eine Variable speichere also z. B. die Ausgabe von CHDIR in die Variable %PWD%

        mit FOR, ist doch klar ;-)

        In Batch:

        ECHO OFF
        REM Die Ausgabe von CD ohne Parameter ist einzeilig
        FOR /F "usebackq delims=/" %%A IN (CD) DO SET PWD=%%~fA
        REM Kontrollausgabe:
        SET PWD

        An der Kommandozeile nur einfache Prozentzeichen verwenden.

        Wie wär's mit der Powershell oder zumindest dem Windows Scripting Host oder vielleicht einem netten cygwin? CMD.EXE ist zwar ein riesiger Fortschritt gegenüber COMMAND.COM gewesen, macht aber bei vielen Operationen keinen besonders großen Spass.

        Freundliche Grüße

        Vinzenz