如何删除GE开头用户目录下private文件夹内的所有内容?
解决方案:清空GE开头用户目录下private文件夹的所有内容
方案1:分两步删除文件和子文件夹
先执行你已有的文件删除命令,再通过嵌套遍历删除private下的所有子文件夹:
@echo off :: 删除private文件夹内的所有文件 for /D %%I in ("C:\Users\ge*") do del /A /F /Q "%%I\documents\private\*" 2>nul :: 删除private文件夹内的所有子文件夹(含其内容) for /D %%I in ("C:\Users\ge*") do for /D %%J in ("%%I\documents\private\*") do rmdir /S /Q "%%J" 2>nul
方案2:用Robocopy高效清空文件夹
利用Robocopy的镜像功能,一次性清空目标文件夹内容(保留private文件夹本身),比分步删除更高效:
@echo off :: 创建临时空目录 md "%temp%\EmptyDir" 2>nul :: 镜像空目录到private,实现清空 for /D %%I in ("C:\Users\ge*") do robocopy "%temp%\EmptyDir" "%%I\documents\private" /MIR /NFL /NDL /NJH /NJS 2>nul :: 清理临时目录 rmdir "%temp%\EmptyDir" 2>nul
原命令无效的原因
- 多余的
/R参数:for /D /R会递归遍历C:\Users\ge*下的所有子目录,导致%%I匹配的路径不是你需要的用户根目录,后续拼接的documents\private路径会出错。 - rmdir的路径错误:
rmdir不支持用*匹配文件夹,必须指定具体的文件夹路径,或者通过for /D遍历目标目录下的子文件夹再逐个删除。
内容的提问来源于stack exchange,提问作者Cronoping
相关产品推荐
相关产品推荐

