我尝试在我的批处理文件中删除包含许多文件和子目录的文件夹(BR),我尝试以下操作:
如果存在C:\ BR( rmdir“C:\ BR”/ S / q )
但有时我会收到一个特定文件夹不为空的错误。这个文件夹包含CSS文件。 有什么问题??
答案 0 :(得分:10)
rd /s /q DIRNAME
rmdir /s /q DIRNAME
您无法删除的文件正在使用中 关闭任何程序将它们打开,可能是您的浏览器,然后再试一次。
我猜你试图删除%TMP%
文件夹。
编辑:回答zipi的问题。
它将删除它可以的每个文件和文件夹。因此,如果c:\tmp\dir2\dir3\open.txt
已打开,则c:\tmp\emptyDir
是一个空目录,您可以这样做:
c:\>dir c:\tmp /b /s
c:\tmp\a.txt
c:\tmp\dir2\b.txt
c:\tmp\dir2\dir3\open.txt
c:\>rd /q /s c:\tmp
c:\>dir /s /b c:\tmp
c:\tmp\dir2\dir3\open.txt
您将删除:
c:\tmp\a.txt
c:\tmp\dir2\b.txt
并删除:
c:\tmp\emptyDir
但仍有目录......
c:\tmp
c:\tmp\dir2
c:\tmp\dir2\dir3
...文件:
c:\tmp\dir2\dir3\open.txt
相反,如果a.txt
已打开,则您只有:
c:\tmp\
和
c:\tmp\a.txt
答案 1 :(得分:2)
在win7上,我使用一个简单的bat文件来解决问题:
call :rmdir "my_directory_01"
call :rmdir "my_directory_02"
pause
goto :EOF
:rmdir
if exist %1 rmdir /s /q %1
if exist %1 goto :rmdir
goto :EOF
答案 2 :(得分:2)
我有类似的问题。尝试了许多不同的解决方案,但最终只有以下工作:
rmdir c:\<directory> /s /q
以前在CMD中使用其他方法我得到以下内容:
目录不为空。
答案 3 :(得分:1)
我有同样的问题,解决方案非常愚蠢。请先使用/ Q和/ S解决问题。所以命令应该是这样的:
IF EXIST%build_folder%RD / Q / S%build_folder%
如果这可以解决您的问题,请告诉我。
此致 Anuj
答案 4 :(得分:0)
要在命令行中删除目录,您必须首先删除它所有的文件和子链接。如果其中一些项目是只读的,则可能会出现此问题。 / f将尝试强制删除它们。
尝试
if exists C:\BR (del "C:\BR" /f /s /q)
这里有DEL命令的MS文档:http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/del.mspx?mfr=true
答案 5 :(得分:0)
这对我有用
您需要转到文件夹所在的任何驱动器。然后右键单击驱动器&gt;属性&gt;检查扫描磁盘或扫描驱动器以及Windows8扫描和修复
然后返回到您的文件夹并将其删除
Batch - Getting "The directory is not empty" on rmdir command
答案 6 :(得分:0)
在我的情况下,无法使用rd / Q / S删除目录并使Directory不为空,这取决于文件权限。批处理作业正在进行备份,并在最后删除最旧的备份文件夹以保留最新的10个备份。普通用户帐户仅对子文件夹中的某些文件具有读取和执行权限。在“任务计划程序”下运行包含rd命令的批处理文件,并在“以最高权限运行”选项中打勾,以便删除目录。
如果在cmd下运行批处理文件并选择以管理员身份运行,则可以实现类似于一次性的操作。在Windows 7中,在“搜索程序和文件”框中键入CMD,然后右键单击弹出窗口顶部的cmd.exe,并单击“以管理员身份运行”。然后在cmd“黑色背景”窗口中查找并运行批处理文件。