Как удалить все файлы и папки в папку на cmd вызов



Я использую Windows.



Я хочу удалить все файлы и папки в папку на системный вызов.



Я могу называть так:



>rd /s /q c:destination
>md c:destination


вы знаете более простой способ?

706   9  

9 ответов:

Нет, я не знаю ни одного.

если вы хотите сохранить исходный каталог по какой-то причине (ACLs, &c.), а вместо этого действительно хотите его очистить, то вы можете сделать следующее:

del /q destination\*
for /d %x in (destination\*) do @rd /s /q "%x"

это сначала удаляет все файлы из директории, а затем рекурсивно удаляет все вложенные каталоги, но в целом сохраняя директории верхнего уровня "как есть" (за исключением содержания).

обратите внимание, что в пакетном файле вам нужно удвоить % внутри for петля:

del /q destination\*
for /d %%x in (destination\*) do @rd /s /q "%%x"

del c:\destination\*.* /s /q работал для меня. Я надеюсь, что это работает и для вас.

Я думаю, самый простой способ сделать это:

rmdir /s /q "C:\FolderToNotToDelete\"

последнее " \ " в пути является важной частью.

если имена вложенных папок могут содержать пробелы, их необходимо заключить в экранированные кавычки. В следующем примере это показано для команд, используемых в пакетном файле.

set targetdir=c:\example
del /q %targetdir%\*
for /d %%x in (%targetdir%\*) do @rd /s /q ^"%%x^"

да! Используйте Powershell:

powershell -Command "Remove-Item 'c:\destination\*' -Recurse -Force"

удалить файл:

del PATH_TO_FILE

удалить папку со всеми файлами в ней:

rmdir /s /q PATH_TO_FOLDER

удалить все файлы из определенной папки (не удаляя саму папку) немного сложнее. del /s *.* не удается удалить папки, но удаляет файлы из всех вложенных папок. Поэтому необходимы две команды:

del /q PATH_TO_FOLDER\*.*
for /d %i in (PATH_TO_FOLDER\*.*) do @rmdir /s /q "%i"

вы можете создать скрипт для удаления всего, что вы хотите (папки или файла), как это 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%

несколько примеров использование:

mydel.bat "path\to\folder with spaces"
mydel.bat path\to\file_or_folder

один простой однострочный вариант-создать пустой каталог где-то в вашей файловой системе, а затем использовать ROBOCOPY (http://technet.microsoft.com/en-us/library/cc733145.aspx) с /MIR переключатель для удаления всех файлов и вложенных папок. По умолчанию robocopy не копирует безопасность, поэтому списки управления доступом в корневой папке должны оставаться нетронутыми.

также, вероятно, хотите установить значение для переключателя повтора,/r, потому что по умолчанию количество попыток 1 миллион.

robocopy "C:\DoNotDelete_UsedByScripts\EmptyFolder" "c:\temp\MyDirectoryToEmpty" /MIR /r:3

У меня была индексная папка с 33 папками, в которых нужно было удалить все файлы и подпапки. Я открыл командную строку в папке индекса, а затем использовал следующие команды:

for /d in (*) do rd /s /q "%a" & (
md "%a")

Я разделил их на две строки (нажмите enter после первой строки, и когда вас попросят добавить вторую строку), потому что если ввести в одну строку, это может не сработать. Эта команда удалит каждый каталог, а затем создаст новый, который будет пустым, тем самым удаляя все файлы и подпапки в каталоге. оригинальный каталог.

перейдите в родительский каталог

Line1 pushd "родительский каталог"

удалить подпапки

Line2 rd /s / q . 2 > nul

https://superuser.com/questions/173859/how-can-i-delete-all-files-subfolders-in-a-given-folder-via-the-command-prompt

Comments

    Ничего не найдено.