无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 2842|回复: 4
打印 上一主题 下一主题

请大家帮个忙

[复制链接]
跳转到指定楼层
1#
发表于 2011-12-28 08:13:55 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
如何删除一些指定文件名长度的文件 (也就是保留某些文件名长度的文件),通配符?我试过一些 比如删除文件名长度为3和5以上,只保留长度为4的文件
5#
发表于 2011-12-29 23:41:47 | 只看该作者

基础呀!基础

通配符 不是只有 *   还有 ?  findstr命令还有  .  也是通配作用!
回复

使用道具 举报

4#
发表于 2011-12-28 16:52:20 | 只看该作者
那就把*.*指定一下就可以啦(如改成 D:\ABC\*.*)。
2楼默认删除的是批处理自身所在的目录下的文件,有可能将自身也删了,呵呵。。。
回复

使用道具 举报

3#
 楼主| 发表于 2011-12-28 16:10:50 | 只看该作者
多谢这个批可以删除指定的文件,但还要加多一点:就是要指定文件夹,不是指定的文件夹不执行,避免误删错其它文件
回复

使用道具 举报

2#
发表于 2011-12-28 13:50:09 | 只看该作者
删除文件名长度5字节以上(含5字节,不包括扩展名)的文件:
@echo off
setlocal enabledelayedexpansion
set n=0
for /f "delims=" %%a in ('dir /a-d /b /s *.*') do (
  set str=%%~na
  if not "!str:~4!"=="" del /q /f "%%a">nul&set/a n+=1
)
echo.&echo 共计删除!n!个
pause

删除文件名长度3字节以下(含3字节,不包括扩展名)的文件:
@echo off
setlocal enabledelayedexpansion
set n=0
for /f "delims=" %%a in ('dir /a-d /b /s *.*') do (
  set str=%%~na
  if "!str:~3!"=="" del /q /f "%%a">nul&set/a n+=1
)
echo.&echo 共计删除!n!个
pause

剩余就是4字节的了。删错了莫怪。可以先将del %%a>nul 改成 echo %%a 试一试有没有问题。

[ 本帖最后由 pznpt 于 2011-12-28 15:25 编辑 ]

评分

参与人数 1无忧币 +20 收起 理由
zhs509 + 20

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-12-2 21:54

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表