如何创build1行命令来删除特定数量的文件夹

我试图创build一个1行命令,将获得匹配模式的所有目录,并删除其中的一定数量。

比方说,我有这样一个目录:

C:/ tmp/ www/ 01/ 02/ 03/ 04/ 05/ 

而且我只想保留最新的2个文件夹0504

我有一个for循环,将输出所有的文件夹,im有麻烦的部分正在计数过去一定数量:

 > for /f "tokens=*" %G in ('dir /b /a:d "C:\tmp\www\*"') do echo Found %G Found 20161201004853 Found 20161201005125 Found 20161201005246 

我曾尝试添加一个计数器,但我不知道如何分开命令,因为它的所有1行。 尽pipe大量的谷歌search如何,希望有人在这里知道。

像往常一样,如果有更好的办法做到这一点,我也是这样开放的。

这将删除除最后2个文件夹以外的所有文件夹(假设它们按字母顺序排列)

只要把这行id一个.cmd / .bat文件,并在父文件夹内执行

。 文件的数量可以通过传递给命令的参数(%1)来控制。 删除最后或第一个文件夹可以用'dir / b /o.n'来控制

 setlocal EnableDelayedExpansion & set x=0 & for /f %%f in ( 'dir /b /on' ) do ( set /a x+=1 & if !x! lss 3 rd /s/q %%f )