2016-07-19 18 views
2

Ich möchte eine Batch-Datei erstellen löschen oder entfernen Sie den Ordner C:\temp\root\students\type1, seinen Unterordner und alle Dateien.So löschen Sie einen bestimmten Unterordner in einem übergeordneten Ordner mit einer Batch-Datei

Die Ordner und Dateien, die ich sind, haben Sie wie folgt vor:

C:\temp 
C:\temp\root 
C:\temp\root\students 
C:\temp\root\tutors 
C:\temp\root\students\type1 
C:\temp\root\students\type2 
C:\temp\root\tutors\type1 
C:\temp\root\tutors\type2 
C:\temp\root\students\type1\details.txt 
C:\temp\root\students\type1\assignment1 
C:\temp\root\students\type1\assignment1\results.txt 

Der Ordner C:\temp\root\students\type1\assignment1 wird in der Batch-Datei angegeben.

Ich möchte einen Ordner/Verzeichnis nach oben gehen und löschen oder entfernen C:\temp\root\students\type1 in meiner Batch-Datei (test.bat).

Bitte helfen Sie mir dabei. diese

+1

C ist eine Programmiersprache, nicht alles, was hart deine Sachen auf ist treiben. Dies sollte nicht mit einem Tag versehen sein. C. – evaitl

+0

Wo ist Ihr vorhandener Stapelverarbeitungsbefehl? Ändern Sie einfach den Ordner nach Ihren Bedürfnissen – dbmitch

Antwort

1

Verwendung:

rd /s /q C:\temp\root\students\type1 

Es wird entfernen Sie Dateien und Ordner rekursiv, vorsicht, ohne Aufforderung. Es ist eine Art Ersatz für den guten alten Baum. Beste.

EDIT: in Ihrem Notizblock, Ihre mygoodbatch.bat mit diesem Inhalt erstellen:

md C:\temp 
md C:\temp\root 
md C:\temp\root\students 
md C:\temp\root\tutors 
md C:\temp\root\students\type1 
md C:\temp\root\students\type2 
md C:\temp\root\tutors\type1 
md C:\temp\root\tutors\type2 
md C:\temp\root\students\type1\details.txt 
md C:\temp\root\students\type1\assignment1 
md C:\temp\root\students\type1\assignment1\results.txt 
rd /s /q C:\temp\root\students\type1 

(md die dir dos Befehl machen ist, so dass alle beginnen Linien mit ihm schaffen die Ordner - die letzte Zeile ist diejenige, die dein Level 4AA hat)

Speichere diesen Batch im Root der Festplatte und starte ihn dann. Ich wünschte wirklich, das ist was du willst. Was ich noch nicht verstanden habe, ist: Du erschaffst eine Verzeichnisstruktur und schließt gleichzeitig Ebene 4AA aus ... ist das das?

+0

Vielen Dank für Ihre Antwort. Dies sind physische Ordner/Verzeichnisse. Gibt es eine Möglichkeit, diese Ordnerstruktur aus der Batchdatei abzurufen und diesen bestimmten Ordner zu entfernen? Was ich durch die Ordnerstruktur gemeint ist: ** C: \ temp ** ist Stufe 1 ** C: \ root \ temp ** ist Stufe 2 ** C: \ temp \ root \ Studenten * * ist Stufe 3A ** C: \ temp \ root \ tutors ** ist Stufe 3B ** C: \ temp \ root \ students \ type1 ** ist Ebene 4AA ** C: \ temp \ root \ students \ type2 ** ist Level 4AB ** C: \ temp \ root \ tutors \ type1 ** ist 4BA ** C: \ temp \ root \ tutors \ type2 ** ist 4BB – PNouma2121

+0

Sorry, nicht sicher, ob ich dich richtig verstanden habe . Das Hauptprinzip ist: alles, was Sie an Stelle von ** C: \ temp \ root \ students \ type1 ** setzen, von meiner Antwort oben wird alles in diesem Ordner gelöscht. – statosdotcom

+0

In meiner Batch-Datei möchte ich diese Ordnerstruktur nach Ebenen erstellen, wie ich unten erwähnt habe, und den Ordner löschen, der sich auf Level 4AA bezieht. Ich bin ein Neuling, also habe ich noch nichts in meiner Batch-Datei. Vielen Dank für Ihre Zeit und Hilfe. – PNouma2121

1

Sie können eine for-Schleife verwenden, den übergeordneten Ordner für einen bestimmten Ordner zu erhalten:

set target_dir=C:\temp\root\students\type1.test\assignment1 

for %%a in ("%target_dir%") do (
    echo Removing %%~dpa% 
    rd /s/q %%~dpa% 
)