Chcę usunąć całą zawartość określonego folderu w systemie Windows 7 za pomocą pliku wsadowego. Mój problem polega na tym, że „del” lub „erase” usuwa tylko pliki, a nie foldery, a „rmdir” lub „rd” zawsze usuwa określony folder z zawartością, ale chcę tylko usunąć zawartość, a nie sam folder . Próbowałem polecenia „ rmdir /S /Q "C:\Share\*"
”, które dało mi błąd składniowy.
Jaki jest właściwy sposób to zrobić?
Pracuję na systemie Windows 7 Professional w wersji 64-bitowej i mam uprawnienia administratora.
źródło
del
to nie jest konieczne.rd/s/q
usunie zarówno pliki, jak i podfoldery.del
jest głównie dla plików w folderze głównym, może jednak usunąć przełącznik rekurencji.Pojawia się „błąd składniowy”, ponieważ
rmdir
akceptuje tylko pełne nazwy, a nie symbole wieloznaczne. (Wcmd.exe
, interpretacja symboli wieloznacznych jest pozostawiona poszczególnym programom; nie wszystkie mają.)Jeśli masz wiele katalogów zaczynających się od
Share...
, użyjfor
pętli.źródło
Spróbuj tego w wierszu polecenia:
źródło
Co powiesz na ?
EDYCJA: oczywiście to rozwiązanie ma zastosowanie tylko wtedy, gdy można tolerować chwilową nieobecność folderu.
źródło
for /f
w przypadkach podobnych do mojego. Chciałem tylko udostępnićTo nie działa, jeśli podkatalogi zawierają inne katalogi zawierające spacje.
Aby to zadziałało, musiałem zacytować ostatni ciąg, taki jak ten
Najwyraźniej powoduje to, że polecenie działa na cytowanym ciągu zamiast na samym ciągu.
źródło
Spróbowałbym tego w folderze, w którym wszystkie podfoldery powinny zostać usunięte, ale katalog główny (i pliki w katalogu głównym) pozostały takie, jakie są: dla / D% v w (*) do rd / s / q% v
for / D dopasowuje katalogi, a rd / s / q usuwa je po kolei
źródło
po prostu:
rmdir / s / q „ścieżka”
mkdir „ścieżka”
źródło