xiaochuan 发表于 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弹出总数。

请大家帮忙,多谢!!!

水木子 发表于 2010-5-14 15:52:19

本帖最后由 水木子 于 2010-5-14 15:55 编辑

#include <Array.au3>
Dim $avArray
$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

afan 发表于 2010-5-14 16:01:34

_FileListToArray()
StringRegExpReplace($str, '.+---(\d+)\.jpg$', '$1')

menfan 发表于 2010-5-15 15:49:17

正则学习一下呵呵

sunkiss 发表于 2010-5-15 15:56:04

回复 3# afan


就这么简单么???\d+我懂,前边的+---是什么意思?---难道是文件名里的---??+的意思是找到的数字相加?

afan 发表于 2010-5-15 16:52:07

回复afan


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


    不是~ 只是大概用到的关键语句罢了,呵呵~ 正则里面的+没有数值相加的意思~

xiaochuan 发表于 2010-5-16 17:55:07

问题已解决。
多谢水木子和afan帮忙。
谢谢!:face (31):

零度深蓝 发表于 2011-11-25 15:18:51

收藏了,学写下
页: [1]
查看完整版本: [已解决]获取当前文件夹下所有文件名中的某些部分(数值)。