Używam Windows.Jak usunąć wszystkie pliki i foldery w folderze przez cmd call
Chcę usunąć wszystkie pliki i foldery w folderze przez wywołanie systemowe.
mogę nazwać tak:
>rd /s /q c:\destination
>md c:\destination
Wiesz łatwiejszy sposób?
Używam Windows.Jak usunąć wszystkie pliki i foldery w folderze przez cmd call
Chcę usunąć wszystkie pliki i foldery w folderze przez wywołanie systemowe.
mogę nazwać tak:
>rd /s /q c:\destination
>md c:\destination
Wiesz łatwiejszy sposób?
Nie, nie znam jednego.
Jeśli chcesz zachować oryginalny katalog z jakiegoś powodu, a zamiast tego naprawdę chcą go opróżnić, a następnie można wykonać następujące czynności (ACL, & c.):
del /q destination\*
for /d %x in (destination\*) do @rd /s /q "%x"
To pierwsze usuwa wszystkie pliki z katalogu, a następnie rekurencyjnie usuwa wszystkie zagnieżdżone katalogi, ale ogólnie zachowuje katalog najwyższego poziomu, jaki jest (z wyjątkiem jego zawartości).
Zauważ, że w pliku wsadowym trzeba podwoić %
wewnątrz pętli for
:
del /q destination\*
for /d %%x in (destination\*) do @rd /s /q "%%x"
it's sposób to zrobić –
Byłem w stanie to zrobić bez pliku wsadowego. użyj znaku &&, aby połączyć dwie operacje: –
Jestem kompletnym noobem powłoki okna: jak ustawić miejsce docelowe do ścieżki za pomocą tego przykładu? –
del c:\destination\*.* /s /q
pracował dla mnie. Mam nadzieję, że to też działa dla ciebie.
Usuwa wszystkie pliki, ale nie foldery. – Eric
Udało mi się przejść do folderu. (Przesuń prawy przycisk myszy, wybierz polecenie "otwórz cmd"), następnie "del *. *' –
Jeśli w nazwach podfolderów mogą znajdować się spacje, należy je ująć w ukryte cudzysłowy. Poniższy przykład pokazuje to dla poleceń używanych w pliku wsadowym.
set targetdir=c:\example
del /q %targetdir%\*
for /d %%x in (%targetdir%\*) do @rd /s /q ^"%%x^"
Prostym rozwiązaniem jedna linia jest stworzenie pusty katalog gdzieś w systemie plików, a następnie użyj ROBOCOPY
(http://technet.microsoft.com/en-us/library/cc733145.aspx) z przełącznikiem /MIR
usunąć wszystkie pliki i podfoldery. Domyślnie robocopy nie kopiuje zabezpieczeń, więc listy ACL w folderze głównym powinny pozostać nienaruszone.
Prawdopodobnie również chcesz ustawić wartość przełącznika ponownych prób, /r
, ponieważ domyślna liczba ponownych prób wynosi 1 milion.
robocopy "C:\DoNotDelete_UsedByScripts\EmptyFolder" "c:\temp\MyDirectoryToEmpty" /MIR /r:3
Miałem folder indeksu z 33 folderami, które wymagały usunięcia wszystkich plików i podfolderów. Otworzyłem wiersz polecenia w folderze indeksu, a następnie wykorzystywane te polecenia:
for /d in (*) do rd /s /q "%a" & (
md "%a")
I oddzielić je na dwie linie (naciśnij enter po pierwszej linii, a gdy poprosił o więcej dodać drugi wiersz), ponieważ jeśli wszedł na pojedynczym linia ta może nie działać. To polecenie usunie każdy katalog, a następnie utworzy nowy, który jest pusty, usuwając wszystkie pliki i podfoldery z oryginalnego katalogu.
Myślę, że najprostszym sposobem na to jest:
rmdir /s /q "C:\FolderToNotToDelete\"
Ostatnim „\” w ścieżce jest ważną częścią.
Przejdź do katalogu nadrzędnego
Usuń podfoldery
Jeśli używasz 'pushd', musisz również użyć' popd'. Niestety 'popd' nie działa po usunięciu katalogu. Tak więc, musisz zrobić 'cd' zamiast' pushd'. – xmedeko
Aby usunąć plik:
del PATH_TO_FILE
Aby usunąć katalog ze wszystkimi plikami w nim:
rmdir /s /q PATH_TO_FOLDER
Aby usunąć wszystkie pliki z określonego folderu (folder nie usuwając sama) jest nieco skomplikowana. del /s *.*
nie można usunąć folderów, ale usuwa pliki ze wszystkich podfolderów. Więc potrzebne są dwie komendy:
del /q PATH_TO_FOLDER\*.*
for /d %i in (PATH_TO_FOLDER\*.*) do @rmdir /s /q "%i"
Można utworzyć skrypt, aby usunąć cokolwiek chcesz (folder lub plik), tak jak to mydel.bat
:
@echo off
setlocal enableextensions
if "%~1"=="" (
echo Usage: %0 path
exit /b 1
)
:: check whether it is folder or file
set ISDIR=0
set ATTR=%~a1
set DIRATTR=%ATTR:~0,1%
if /i "%DIRATTR%"=="d" set ISDIR=1
:: Delete folder or file
if %ISDIR%==1 (rmdir /s /q "%~1") else (del "%~1")
exit /b %ERRORLEVEL%
kilka przykładów użycia:
mydel.bat "path\to\folder with spaces"
mydel.bat path\to\file_or_folder
Tak! Wykorzystanie PowerShell:
powershell -Command "Remove-Item 'c:\destination\*' -Recurse -Force"
http://superuser.com/questions/173859/how-can-i-delete-all-files-subfolders-in-a-given-folder-via-the-command-prompt –
Możliwy duplikat [Co się stało z deltree i co jest jego zamiennikiem?] (Http://stackoverflow.com/questions/338895/what-ever-happened-to-deltree-and-whats-its-replacement) –