Windows Cmd行删除命令删除除一个文件以外的所有文件

时间:2016-09-16 11:16:26

标签: windows command-line-interface

我正在寻找一个单独的Windows命令,我需要删除文件夹中的所有文件,除了一个。

例如:目录下列出的文件:

  • C:\用户\管理员\文件夹
    • ABC
    • abcde.zip
    • ABCDEF
    • 123.txt

现在,我要删除除" abcde.zip"

之外的所有文件

相应的Linux命令为:rm -rf !(abcde.zip)

在不使用批处理脚本的情况下,在Windows上是否有类似的内容,只需一行命令?

提前致谢!

1 个答案:

答案 0 :(得分:0)

由于 Win 的命令解释器没有类似rm -rf的命令(适用于文件和目录),我们只需修改命令即可我放在我的第一个评论中,实际上将它拆分为2个命令(仍然在一行中:好吧,如果控制台真的非常宽:)),并按顺序执行它们(&):

  • 负责处理文件的人(dir的/a:-d参数),然后启动del
  • 负责处理文件夹(/a:d参数)并启动rmdir
  • 的人

这就是它的样子(注意它完成了当前目录的工作):

(for /f "tokens=*" %f in ('dir /a:-d /b 2^>nul ^| findstr /v /b /e /c:"abcde.zip"') do (del /f "%f")) & (for /f "tokens=*" %f in ('dir /a:d /b ^| findstr /v /b /e /c:"abcde.zip"') do (rmdir /q /s "%f"))