【问题标题】:Delete all folders except 2 latest folders in Windows删除 Windows 中除 2 个最新文件夹外的所有文件夹
【发布时间】:2013-07-08 07:44:27
【问题描述】:

我想从一个目录中删除除最近更新的 2 个文件夹(上次修改日期)之外的所有文件夹。

我想使用命令行来执行此操作。我该怎么做?

以下是按上次修改时间排序显示文件夹的代码:

dir /ad-h /od

我尝试使用FOR /D 命令:

for /d "skip=2 tokens=*" %G in ("dir /ad-h /od") DO echo going to delete %G

但我收到以下错误消息:

"skip=2 tokens=*" was unexpected at this time.

我该怎么做?

【问题讨论】:

    标签: windows file batch-file


    【解决方案1】:
    for /f "skip=2 delims=" %G in ('dir /B /ad-h /o-d "d:\your path" ') DO echo going to delete "%G"
    

    For /f 处理来自single-quoted DIR 的“输出”行...

    Delims= 更好。 tokens=* 可以在这里工作,但会抑制前导空格。

    /b 抑制来自dir 的标头输出

    /o-d 用于反向日期订单。您想保留两个跳过的目录,它们在反向日期排序中出现 FIRS。

    ...好的echo 安全措施。

    【讨论】:

    • in /ad-h /ad 只选择目录,-h 从列表中删除隐藏文件夹。
    • @Magoo 你可能只是让我免于更多的头痛。请参阅此处 stackoverflow.com/questions/31796149/… 和此处 stackoverflow.com/questions/31787056/… 。除此之外,我阅读了您的个人资料,并希望亲自与您联系,与 IT 无关,但与您在个人资料中写的内容有关。底线:如此真实,它伤害并让我生气。甚至不是 IT,是无能的 HR 傀儡毁了一切。无论如何。我怎么能跟你说 2?
    • @Magoo 是的,它确实有效,现在查看链接问题和我的答案,尽管我将 del 更改为 rd 以同时删除文件夹 with 他们的内容.
    • 在哪里指定路径?
    • @Paul:已修复。注意使用兔子的耳朵来允许正确处理路径名中的空格
    猜你喜欢
    • 2017-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-15
    • 2016-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多