2013-07-08 156 views
2

我想从最近更新的2个文件夹(最后修改日期)以外的目录中删除所有文件夹。删除Windows中除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. 

我该怎么做?

回答

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

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

Delims=更好。 tokens=*将在这里工作,但抑制领先空间。

/b抑制报头输出从dir

/o-d用于反向日期顺序。您希望保留两个跳过的dirs,这些dirs会在逆向日期排序中出现FIRS。

...好的echo安全措施。

+0

in'/ ad-h'/ad只选择目录,-h从列表中删除隐藏的文件夹。 – foxidrive

+0

@Magoo你可能只是让我从更多的烦恼中解脱出来。看到这里https://stackoverflow.com/questions/31796149/windows-batch-script-to-only-keep-the-n-latest-folders-in-a-directory和在这里https://stackoverflow.com/questions/31787056/windows-batch-script-to-backup-local-mysql-databases-only-keep-n-latest-folder。除此之外,我还阅读了您的个人资料,并希望与您个人联系,但与您的个人资料无关。底线:真的很痛,让我很生气。这甚至不是IT,而是无能的HR傀儡毁了一切。无论如何。我怎么能说你呢? – lowtechsun

+0

@Magoo,是的,它确实有效,现在看到与我的答案链接的问题,虽然我正在将'del'更改为'rd',同时还删除**内容的文件夹**。 – lowtechsun

相关问题