Пакетный файл. Удаление всех файлов и папок в каталоге

Я хочу иметь пакетный файл, который удалит все папки и файлы в папке cache для моего беспроводного набора инструментов.

В настоящее время у меня есть следующее:

cd "C:\Users\tbrollo\j2mewtk\2.5.2\appdb\RMS"
del *.db

Это удалит все файлы .db в моем каталоге RMS, однако я хочу удалить все файлы из этого каталога. Как я могу это сделать?

Комментарии к вопросу (6)

Использование:

  • Создайте пакетный файл

  • Скопируйте приведенный ниже текст в пакетном файле

набор папок="и C:\test" кд /д %папка% к /ф "в delims=" По %%я в ('реж /б') сделать (команда rmdir-то "%%Я" и /с/м || дел " По%%Я" В /С/г)

Это будет удалить все файлы и папки.

Комментарии (11)
Решение

del *.* вместо del *.db. Это удалит все.

Комментарии (3)
IF EXIST "C:\Users\tbrollo\j2mewtk\2.5.2\appdb\RMS" (
    rmdir "C:\Users\tbrollo\j2mewtk\2.5.2\appdb\RMS" /s /q
)

Это приведет к удалению всего из папки (и самой папки).

Комментарии (2)

дель .` останется только удалить файлы, но не вложенные папки. Чтобы взорвать содержимое каталога, вы можете использовать этот скрипт:

@echo off
setlocal enableextensions
if {%1}=={} goto :HELP
if {%1}=={/?} goto :HELP
goto :START

:HELP
echo Usage: %~n0 directory-name
echo.
echo Empties the contents of the specified directory,
echo WITHOUT CONFIRMATION. USE EXTREME CAUTION!
goto :DONE

:START
pushd %1 || goto :DONE
rd /q /s . 2> NUL
popd

:DONE
endlocal
Комментарии (3)

Я просто положу это вместе с какой morty346 опубликовано:

set folder="C:\test"
IF EXIST "%folder%" (
    cd /d %folder%
    for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q || del "%%i" /s/q)
)

Он добавляет быстро проверить, что в папке, определенной в переменной существует, во-первых, изменения в папку и удаляет содержимое.

Комментарии (1)

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

del /S C:\Path\to\directory\*

Команда РД также может быть использован. Рекурсивно удалить спокойно без запроса:

@RD /S /Q %VAR_PATH%

[Команда rmdir (РД)][2]

[2]: https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-xp/bb490990(в=сайте TechNet.10)

Комментарии (0)
set "DIR_TO_DELETE=your_path_to_the_folder"

IF EXIST %DIR_TO_DELETE% (
    FOR /D %%p IN ("%DIR_TO_DELETE%\*.*") DO rmdir "%%p" /S /Q
    del %DIR_TO_DELETE%\*.* /F /Q
)
Комментарии (1)

Попробуйте следующее; это работает для меня.

У меня есть приложение, которое сбрасывает данные в папку "C:\tmp", и следующее приложение работает лучше всего. Оно даже не спрашивает Да или Нет, чтобы удалить данные. Я создал расписание, по которому она будет запускаться через каждые 5 минут.

cd "C:\tmp"

del *.* /Q
Комментарии (4)

Вы могли бы использовать программы в зеркало пустую папку в папку вы очищаете.

robocopy "C:\temp\empty" "C:\temp\target" /E /MIR

Это также работает, если вы можете'т удалить или воссоздать реальные папки.

Это требует существующий пустой каталог.

Комментарии (1)

Еще лучше, пусть'ы сказать, что я хочу удалить все под `C:\windows\temp папку.

@echo off
rd C:\windows\temp /s /q
Комментарии (3)

Использовать

set dir="Your Folder Path Here"
rmdir /s %dir%
mkdir %dir%

Эта версия удаляет не спрашивая:

set dir="Your Folder Here"
rmdir /s /q %dir%
mkdir %dir%

Пример:

set dir="C:\foo1\foo\foo\foo3"
rmdir /s /q %dir%
mkdir %dir%

Это будет ясно C:\foo1\foo\foo\foo3`.

<суб>(я хотел бы отметить, Абдулла Sabouin'ы ответ. Что было обо мне копировать его. Я не заметил его пост. Я хотел бы поблагодарить вас Мельпомены за указание на ошибки!)</суб>

Комментарии (7)

Просто модифицированная версия GregM'ы ответ:

set folder="C:\test"
cd /D %folder%
if NOT %errorlevel% == 0 (exit /b 1)
echo Entire content of %cd% will be deleted. Press Ctrl-C to abort
pause

REM First the directories /ad option of dir
for /F "delims=" %%i in ('dir /b /ad') do (echo rmdir "%%i" /s/q)

REM Now the files /a-d option of dir
for /F "delims=" %%i in ('dir /b /a-d') do (echo del "%%i" /q)

REM To deactivate simulation mode remove the word 'echo' before 'rmdir' and 'del'.
Комментарии (0)

Вы не можете удалить все с Команда rmdir или дель в одиночку:

  • команду rmdir /с /М не принимать подстановочные параметры. Так будет ошибка команду rmdir /с /к*`.
  • дель /с /ф /Q, то будут удалены все файлы, но пустые подкаталоги останется.

Мой предпочтительным решением (как я уже используется во многих других пакетных файлов):

rmdir /s /q . 2>NUL
Комментарии (0)

Вы должны выполнить эту команду, чтобы удалить все файлы:

del*.*
Комментарии (1)
@echo off
@color 0A

echo Deleting logs

rmdir /S/Q c:\log\

ping 1.1.1.1 -n 5 -w 1000 > nul

echo Adding log folder back

md c:\log\

Ты был на верном пути. Просто добавьте код, чтобы добавить папку, которая снова удаляется обратно.

Комментарии (1)