[已解决]获取当前文件夹下所有文件名中的某些部分(数值)。
本帖最后由 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: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 _FileListToArray()
StringRegExpReplace($str, '.+---(\d+)\.jpg$', '$1') 正则学习一下呵呵 回复 3# afan
就这么简单么???\d+我懂,前边的+---是什么意思?---难道是文件名里的---??+的意思是找到的数字相加? 回复afan
就这么简单么???\d+我懂,前边的+---是什么意思?---难道是文件名里的---??+的意思是 ...
sunkiss 发表于 2010-5-15 15:56 http://www.autoitx.com/images/common/back.gif
不是~ 只是大概用到的关键语句罢了,呵呵~ 正则里面的+没有数值相加的意思~ 问题已解决。
多谢水木子和afan帮忙。
谢谢!:face (31): 收藏了,学写下
页:
[1]