找回密码
 加入
搜索
查看: 3670|回复: 7

[AU3基础] [已解决]获取当前文件夹下所有文件名中的某些部分(数值)。

  [复制链接]
发表于 2010-5-14 15:17:31 | 显示全部楼层 |阅读模式
本帖最后由 xiaochuan 于 2010-5-16 18:02 编辑

标题写的有点模糊,请大家耐心看一下,小弟在此感谢!!!
假设当前文件夹下有若干张图片,文件名为:

a.jpg
b---3.jpg
c---6.jpg
d---4.jpg
e---10.jpg
……

1.文件名里如果  有"---" , 取"---"后面的数值,如"3、6……"
2.文件名里如果没有"---" , 当作数值1
3.然后把这些数值加起来,如1+3+6+4+10+……

备注:
      获取文件名我只会用dir /b,但是不会获取回显,也不想输出一个文件。再取文件名中的部分,我就懵了。
      电脑里有很多类似文件夹,不知道有没有方便的方法解决。。。
      例如:把软件打开,把想要计算数目的文件夹 拖到软件上,然后msgbox弹出总数。

请大家帮忙,多谢!!!

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2010-5-14 15:52:19 | 显示全部楼层
本帖最后由 水木子 于 2010-5-14 15:55 编辑
#include <Array.au3>
Dim $avArray[1]
$search = FileFindFirstFile(@ScriptDir & '\*.jpg')

If $search <> -1 Then
        While 1
                $file = FileFindNextFile($search)
                If @error Then ExitLoop
                $aRep = StringRegExpReplace($file, '[^\d]', '')
                If $aRep = '' Then $aRep = 1
                _ArrayAdd($avArray, $aRep)
        WEnd
        _ArrayDelete($avArray, 0)
        $a = _ArrayToString($avArray, ' + ')
        MsgBox(0, '数值和', $a & ' = ' & Execute($a))
EndIf

评分

参与人数 1威望 +1 收起 理由
afan + 1

查看全部评分

发表于 2010-5-14 16:01:34 | 显示全部楼层
_FileListToArray()
StringRegExpReplace($str, '.+---(\d+)\.jpg$', '$1')
发表于 2010-5-15 15:49:17 | 显示全部楼层
正则学习一下呵呵
发表于 2010-5-15 15:56:04 | 显示全部楼层
回复 3# afan


  就这么简单么???\d+我懂,前边的+---是什么意思?---难道是文件名里的---??+的意思是找到的数字相加?
发表于 2010-5-15 16:52:07 | 显示全部楼层
回复  afan


  就这么简单么???\d+我懂,前边的+---是什么意思?---难道是文件名里的---??+的意思是 ...
sunkiss 发表于 2010-5-15 15:56



    不是~ 只是大概用到的关键语句罢了,呵呵~ 正则里面的+没有数值相加的意思~
 楼主| 发表于 2010-5-16 17:55:07 | 显示全部楼层
问题已解决。
多谢水木子和afan帮忙。
谢谢!
发表于 2011-11-25 15:18:51 | 显示全部楼层
收藏了,学写下
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-1 07:46 , Processed in 0.090525 second(s), 29 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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