3

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

我该怎么做?

4

1 回答 1

3
for /f "skip=2 delims=" %G in ('dir /B /ad-h /o-d "d:\your path" ') DO echo going to delete "%G"

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

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

/b抑制标头输出dir

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

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

于 2013-07-08T08:05:00.917 回答