MS-DOS 命令删除除一个之外的所有文件

nun*_*nos 30 ms-dos

是否有 MS-DOS 命令允许我删除除一个文件之外的所有文件?

以以下文件为例:

a.001  
a.002  
a.003  
a.exe  
a.c  
Run Code Online (Sandbox Code Playgroud)

是否有删除所有文件的命令a.c

Kev*_*vin 41

您可以使用forif命令来完成此操作:

for %i in (*) do if not "%~i" == a.c del "%~i"
Run Code Online (Sandbox Code Playgroud)

这会遍历当前目录,并将每个文件名与 ac 进行比较,如果不匹配,则删除该文件。

  • @Wil,当您开始定期使用 `for` 时,您会想到各种疯狂的场景。:) (4认同)
  • @Mike,您想要类似“for %i in (A:\Some\Path\\*) do if not %~nxi == ac del %i”请注意,路径以 * 结尾,以获取其中的文件文件夹,并且比较是针对 %~nxi,没有路径的名称。对于这样的破坏性 for 循环,在运行“for ... do if ... del %i”命令之前执行“for ... do echo %i”以查看哪些文件将受到影响是一个好主意。 (4认同)

小智 20

您可以在删除所有内容之前将文件设置为只读

attrib +r a.c
del *.*
attrib -r a.c
Run Code Online (Sandbox Code Playgroud)


Dav*_*fer 11

不,没有。我会创建一个目录,将重要文件复制到其中,擦除. ,然后将文件移回。然后删除临时文件。

mkdir temp
move a.c temp
erase *.*
move temp\* .
rmdir temp
Run Code Online (Sandbox Code Playgroud)