【问题标题】:Remove All Sub-Directories and Sub-Files Without Removing Parent/Root Directory?删除所有子目录和子文件而不删除父/根目录?
【发布时间】:2013-01-07 13:51:32
【问题描述】:

通过Windows Batch,删除文件夹的所有子目录和子文件而不删除/删除所述父/根文件夹的命令是什么?

这是我迄今为止尝试过的:

ECHO "Good riddance, cache! Muahahahahahaha"
cd "C:\Users\abrewer\Desktop\cache"
del * /q

以上只删除文件,但不删除子文件夹。我也试过 RMDIR 和 RD,这两个命令似乎删除了父/根目录。

【问题讨论】:

  • 您是否仅限于 windows 批处理文件,或者您可以使用 TakeCommand 或类似的东西,使用更高级的脚本语言?
  • 我仅限于 Windows 批处理文件...这是为了让 Windows Server 每晚左右通过计划任务清除文件夹。

标签: windows batch-file command-line directory


【解决方案1】:

最简单的方法:

cd "C:\Users\abrewer\Desktop\cache"
rd /s /q .

当它尝试删除父目录但失败时会输出错误消息,否则它可以正常工作。

或者,类似:

cd "C:\Users\abrewer\Desktop\cache"
del * /q
for /D %%i in (*) do rd /s /q "%%i"

可能会奏效。如果您是从命令行而不是在批处理文件中运行,请记住只使用单个百分号。

【讨论】:

  • +1,第一个选项非常酷。我从没想过要尝试。通过2>nul 重定向可以隐藏错误消息。
  • 不错!我用它来清除机器上的下载文件夹,而不用删除带有蓝色箭头图标的特殊下载文件夹
【解决方案2】:
@echo off
ECHO "Good riddance, cache! Muahahahahahaha"
pushd "C:\Users\abrewer\Desktop\cache"
del * /q
for /d %%F in (*) do rd /s /q "%%F"
popd

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-25
    • 2010-11-12
    • 2012-03-05
    • 1970-01-01
    • 2019-08-31
    • 1970-01-01
    • 2011-02-18
    • 1970-01-01
    相关资源
    最近更新 更多