windows - 删除 Windows 中除 2 个最新文件夹之外的所有文件夹

标签 windows file batch-file

我想从一个目录中删除除 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.

我该怎么做?

最佳答案

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

的 header 输出

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

...良好的echo 安全措施。

关于windows - 删除 Windows 中除 2 个最新文件夹之外的所有文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17521372/

相关文章:

c++ - 如何判断一个文件或文件夹是在固态硬盘上还是在硬盘上?

c# - 在浏览器中打开 URL 并以自动方式拍摄图像快照

java - Groovy ArrayList 对字符串感到困惑

windows - Dos 提示符 - 仅在出错时暂停执行/显示?

python - 如何在 Python 中运行/与 Golang 可执行文件交互?

windows - 以下关于 UNREFERENCED_PARAMETER 的目的是什么?

java - 当我们使用 renameTo() 两次失败时,为什么?

python - 我如何使用Python查找目录中是否有任何txt文件

java - 无法运行程序 "...": CreateProcess error=2

windows - Windows批处理文件中的git grep和xargs?