Пакетный файл.Удалить все файлы и папки в каталоге - PullRequest
124 голосов
/ 27 июля 2011

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

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

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

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

Можете ли вы мне помочь?Спасибо.

Ответы [ 15 ]

1 голос
/ 30 июня 2017

Используйте

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.

Я хотел бы упомянуть @Abdullah Sabouin этим ответом https://stackoverflow.com/a/44578851/8238944. Произошла путаница из-за того, что я его копировал. Я не заметил его пост.

Я хотел бы поблагодарить @melpomene за указание на ошибки!

0 голосов
/ 25 января 2018

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

0 голосов
/ 02 августа 2017

Вы не можете удалить все, используя только rmdir или del:

  • rmdir /s /q не принимает подстановочные символы.Поэтому rmdir /s /q * выдаст ошибку.
  • del /s /f /q удалит все файлы, но пустые подкаталоги останутся.

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

rmdir /s /q . 2>NUL
0 голосов
/ 16 июня 2017
@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\

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

0 голосов
/ 14 марта 2017

Только измененная версия https://stackoverflow.com/users/478183/morty346 ответ

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
...