我想要一个批处理文件,它将删除我的无线工具包的Cache文件夹中的所有文件夹和文件。
目前我有以下内容:
cd "C:\Users\tbrollo\j2mewtk\2.5.2\appdb\RMS"
del *.db
这会删除我的RMS目录中的所有.db文件,但是我想删除此目录中的所有内容
你能救我吗?感谢。答案 0 :(得分:145)
创建批处理文件
将下面的文本复制到批处理文件
set folder="C:\test"
cd /d %folder%
for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q || del "%%i" /s/q)
将删除所有文件和文件夹
答案 1 :(得分:42)
del *.*
代替del *.db
。这将删除所有内容。
答案 2 :(得分:29)
IF EXIST "C:\Users\tbrollo\j2mewtk\2.5.2\appdb\RMS" (
rmdir "C:\Users\tbrollo\j2mewtk\2.5.2\appdb\RMS" /s /q
)
这将删除文件夹(和文件夹本身)中的所有内容。
答案 3 :(得分:14)
del *.*
只会删除文件,但不会删除子目录。要查看目录的内容,可以使用以下脚本:
@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
答案 4 :(得分:12)
将这个与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)
)
快速检查变量中定义的文件夹是否存在,然后将目录更改为该文件夹并删除内容。
答案 5 :(得分:9)
您可以使用del
和/S
标志(告诉它递归所有子目录中的所有文件)来执行此操作:
del /S C:\Path\to\directory\*
也可以使用RD命令。在没有提示的情况下以静默方式递归删除
@RD /S /Q %VAR_PATH%
答案 6 :(得分:5)
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
)
答案 7 :(得分:4)
试试这个,它适用于我,我有一个应用程序将数据转储到我的“C:\ tmp”文件夹&以下对我来说效果最好,它甚至不会要求是或否删除数据,我已经制定了每5分钟运行一次的时间表
cd "C:\tmp"
del *.* /Q
答案 8 :(得分:2)
更好的是,我们想要删除c:\ windows \ temp文件夹下的所有内容。
@echo off
rd c:\windows\temp /s /q
答案 9 :(得分:2)
您可以使用robocopy将空文件夹镜像到要清除的文件夹。
robocopy "C:\temp\empty" "C:\temp\target" /E /MIR
如果您无法删除或重新创建实际文件夹,它也可以使用。
它确实需要一个现有的空目录。
答案 10 :(得分:1)
使用
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指出错误!
答案 11 :(得分:0)
仅修改版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
答案 12 :(得分:0)
您无法仅使用rmdir
或del
删除所有内容:
rmdir /s /q
不接受通配符参数。因此rmdir /s /q *
会出错。del /s /f /q
将删除所有文件,但仍保留空子目录。我首选的解决方案(正如我在许多其他批处理文件中使用的那样)是:
rmdir /s /q . 2>NUL
答案 13 :(得分:0)
简单的答案:
C:
del /S /Q C:\folderName\oderFolderName\*
C:
重要的是,如果您必须从 D: 切换到 C: 或 C: 切换到 D:(或其他任何内容)
/S
递归,所有子文件夹一起删除
/Q
如果您不激活安静模式,提示将要求您为每个子文件夹键入 y...您不希望那样
小心点,这很严重。
答案 14 :(得分:-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\
你在正确的轨道上只需添加一个代码来添加再次删除的文件夹
答案 15 :(得分:-1)
您应该运行此命令以删除所有文件del *。*