Board logo

标题: [系统相关] 批处理怎样删除当前文件夹下除指定后缀名外的所有文件? [打印本页]

作者: moonship    时间: 2011-3-21 11:49     标题: 批处理怎样删除当前文件夹下除指定后缀名外的所有文件?

如题,譬如当前文件夹中的jpg图像都保留,其他所有文件都删除,通过批处理能执行么?
作者: CrLf    时间: 2011-3-21 12:47

本帖最后由 zm900612 于 2011-3-21 22:06 编辑

感谢batcher勘误,代码已修正
(for /f "delims=" %%a in ('dir /a-d /b *.*^|findstr /v "\.jpg$"') do del /f /q "%%a")
作者: Batcher    时间: 2011-3-21 12:55

2# zm900612


万一有个文件叫做jpg.txt呢?
作者: wc726842270    时间: 2011-3-21 13:08

放在"c:\新建文件夹"下
  1. wmic datafile where "drive='c:' and path='\\新建文件夹\\' and extension<>'jpg'" delete
复制代码

作者: wayaoqiang    时间: 2011-3-21 13:11

恩, 给个很一般的方法
  1. @echo off
  2. for /f "delims=" %%a in ('dir /a-d /b *') do (
  3. if not "%%~xa"==".jpg" (
  4. if not "%%a"=="%~nx0" (
  5. del /f /q %%a
  6. )
  7. )
  8. )
  9. pause
复制代码

作者: moonship    时间: 2011-3-21 13:53

用了大家的代码好像还是不行呢?怎么回事?大家帮忙再看看
作者: Batcher    时间: 2011-3-21 14:02

6# moonship


把@echo off删掉,看看哪一步出错了。
作者: moonship    时间: 2011-3-21 14:11

4楼批处理放置目录有规定???
作者: superbat    时间: 2011-3-21 21:41

8# moonship


和你要删除的文件夹放一起
作者: Batcher    时间: 2011-3-21 23:16

8# moonship


可以在代码中使用完整路径,那样就对批处理的放置没有要求了。
作者: wc726842270    时间: 2011-3-22 01:47

本帖最后由 wc726842270 于 2011-3-22 10:59 编辑

即然那样,那就这样好了
PS:请不要随便使用。否则文件不存
  1. @echo off
  2. set /p #PATH=请拖入指定文件夹(慎重使用)
  3. set apath=%#path:\=\\%
  4. set bpath=%apath:~3,-1%
  5. set cpath=%apath:~1,2%
  6. wmic datafile where "drive='%cpath%' and path='%bpath%\\' and extension<>'jpg'" delete
  7. pause
复制代码
仅对文件起作用,其下文件夹不会被处理




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