Board logo

标题: [文件操作] 批处理如何删除无后辍名文件但不误删其他文件? [打印本页]

作者: bobgjs    时间: 2009-2-10 17:44     标题: 批处理如何删除无后辍名文件但不误删其他文件?

一串简单的命令,可以删除电脑里所有的文件,但突然,我发现,没有文件后辍名的文件怎么整?
  1. @echo off
  2. for /f %%j in (exe rar txt doc xls dll ) do (
  3. for /d %%i in (c d e f g h i j k ) do (del %%i:\*.%%j /f/s/q)
  4. )
复制代码

结果留下一堆没有后辍名的文件,如何在这样删除指定后辍名的文件的同时,删除掉无后辍名的文件呢?
我试了一下用通配符“*”,结果一个文件没剩下。@_@
作者: namejm    时间: 2009-2-10 18:21

  先删除指定后缀的文件,然后,dir列出所有的文件,再过滤掉哪些含有后缀的文件即可,演示如下(删除有风险,请注意备份数据):
  1. @echo off
  2. for %%i in (c d e f g h i j k) do (
  3.     for %%j in (exe rar txt doc xls dll) do del /f /q /s %%i:\*.%%j
  4.     for /f %%j in ('dir /a-d /b /s') do if "%%~xj"=="" del /f /q "%%j"
  5. )
  6. pause
复制代码

作者: wxcute    时间: 2009-2-10 18:50

del "%%~dpi%%~ni" 2>nul
作者: yslyxqysl    时间: 2009-2-10 20:37

删除有风险,下手须谨慎。^_^
  1. @echo off
  2. for /d %%i in (c d e f g h i j k ) do (
  3. for /f %%j in (exe rar txt doc xls dll) do del "%%i:\*.%%j" /f/s/q
  4. del "%%i:\*." /f/s/q
  5. )
复制代码

[ 本帖最后由 yslyxqysl 于 2009-2-10 20:39 编辑 ]
作者: namejm    时间: 2009-2-10 20:44

  删除无后缀文件用 del "*.",简洁!
作者: lvsehuaxue    时间: 2011-3-1 20:11     标题: 是不是可以更简练些

  1. @echo off
  2. for %%i in (c d  e f j k) do (
  3.    if exist %%i: del /s /q /f %%i:\*>nul 2>nul
  4. )
复制代码

[ 本帖最后由 lvsehuaxue 于 2011-3-1 20:12 编辑 ]
作者: CrLf    时间: 2011-3-1 22:02

我记得我曾经回过这个帖子吧,怎么回复消失了
(@for %%i in (*) do del /f %%~ni)>nul 2>nul

[ 本帖最后由 zm900612 于 2011-3-1 22:03 编辑 ]
作者: CrLf    时间: 2011-3-1 22:04

全盘的话也可以:
(@for %%i in (c d e f g) do del /f /s %%i:\*.)>nul 2>nul
作者: CrLf    时间: 2011-3-1 22:05

sorry,网络不好,发重了,本楼作废...

[ 本帖最后由 zm900612 于 2011-3-1 22:08 编辑 ]




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2