Rekursiv suchen und einen Ordner löschen mit batch-Datei
Ich bin versucht, zu schreiben eine einfache batch-Datei, die rekursiv suchen und löschen Sie einen Ordner. Aber das folgende Skript ist nicht auf der Suche unter " sub-Ordner. Frage mich, wie das zu tun?
@echo off
cd /d "C:\"
for /d %%i in (temp) do rd /s "%%i"
pause
Dank!
- Die rd-option, um die Rekursion verwendet, ein großes 'S'. Das sieht aus wie ein lower-case 's' in Ihrem Skript.
- Kleinschreibung /s funktioniert mit den meisten DOS - /Windows-Befehle von einem prompt, es sei denn, der Befehl wird die groß-und Kleinschreibung zu bedeuten verschiedene Dinge. Im Fall von
rd
entweder Fall funktioniert genauso. - Danke Jungs, aber versucht, sowohl die oberen Fall (S) und groß (RD) hat nicht geholfen..
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für jeden Ordner (
/d
), rekursiv (/r
) unterc:\
test für das Vorhandensein einestemp
- Ordner, und wenn es vorhanden ist, entfernen Sie esVerzeichnis entfernen-Befehl ist nur echo auf die Konsole. Wenn die Ausgabe korrekt ist, entfernen Sie die
echo
Befehlif exist
übereinstimmen könnte eine Datei mit dem gleichen NamenDen
/S
Schalterrd
bedeutetEs bedeutet nicht, es wird die Suche in allen Verzeichnissen suchen für einen mit dem angegebenen Namen und löschen Sie Sie.
In anderen Worten, wenn Sie
rd /S Test
von derC:\Temp
Ordner, wird es gelöschtC:\Temp\Test\*.*
einschließlich aller Unterverzeichnisse (beliebiger name) derC:\Temp\Test
. Es tut nicht meine, es wird löschenC:\Temp\AnotherDir\Test
, denn das ist es nicht, ein Unterordner desC:\Temp\Test
.C:\Test\*.*
und Unterordner, aber nicht `C:\Dummy\Test`, genau wie ich sagte. 🙂