找回密码
 加入
搜索
查看: 9401|回复: 15

[系统综合] 怎么用AU3重命名D盘文件夹名称?(已解决)

  [复制链接]
发表于 2012-4-2 18:22:24 | 显示全部楼层 |阅读模式
本帖最后由 asura 于 2012-4-2 22:00 编辑

是这样的 若发现d盘存在image开头这样的文件夹,分别将他们重命名,即在他们名称后分别加1.2.3阿拉伯数字顺次排列下去,类似这样 若发现imagea imageb 则重命名为imagea1 imageb2 以前用批处理写过,但用AU3怎么写呢?请教各位大大。谢谢!

评分

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

查看全部评分

发表于 2012-4-2 18:37:37 | 显示全部楼层
本帖最后由 happytc 于 2012-4-2 18:41 编辑


Local $i = 1
While True
        If FileExists("D:\image\") Then
                DirMove("D:\image", "D:\image" & $i, 1)
                $i += 1
        EndIf
        Sleep(100)
WEnd
 楼主| 发表于 2012-4-2 18:49:09 | 显示全部楼层
回复 2# happytc


    大哥这样不行吧。是存在image开头这一类文件夹重命名为后面分别加1
发表于 2012-4-2 19:10:00 | 显示全部楼层
1楼的判断式怎么不行 楼主你不试怎么知道不可以
发表于 2012-4-2 19:10:10 | 显示全部楼层
1楼的判断式怎么不行 楼主你不试怎么知道不可以
发表于 2012-4-2 19:30:08 | 显示全部楼层
回复 4# vason1019

他是说image开头的,如象imageAuto这样的文件夹名


#include <File.au3>

Local $i = 1, $aDir, $sDir = "D:\"
While True
        $aDir = _FileListToArray($sDir, "image*", 2)
        If IsArray($aDir) Then
                For $j = 1 To $aDir[0]
                        If Not StringRegExp($aDir[$j], "^image.*?\d$") Then
                                DirMove($sDir & $aDir[$j], $sDir & $aDir[$j] & $i, 1)
                                $i += 1
                        EndIf
                Next
        EndIf
        
        $aDir = 0
        Sleep(100)
WEnd

评分

参与人数 2金钱 +60 收起 理由
魔导 + 40 强力支持
afan + 20

查看全部评分

 楼主| 发表于 2012-4-2 20:52:01 | 显示全部楼层
回复 6# happytc


    哥我错了,看样子,还是我没有表达清楚我要说的意思 ,已经修改内容了,请在仔细看下,谢谢
发表于 2012-4-2 21:04:16 | 显示全部楼层
回复 6# happytc


用WHILE循环,脚本一直在运行,不会退出,刚测试了也不成功!
发表于 2012-4-2 21:33:11 | 显示全部楼层
本帖最后由 apoorman1986 于 2012-4-2 21:34 编辑

试一下我的
#include <File.au3>
#include<array.au3>
Local $aDir, $sDir = "D:\"
$aDir=_FileListToArray($sDir,"image*",2)
If IsArray($aDir) Then
        _ArrayDisplay($aDir)
        For $i=1 To $aDir[0]
                DirMove($sDir&$aDir[$i],$sDir&"image"&$i,1)
                Next
Else
        MsgBox(0,"","没找到以image开头的文件夹")
EndIf

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

发表于 2012-4-2 21:35:05 | 显示全部楼层
回复 7# asura


    6楼的代码,那点不合你要求?
你检查已经存在的文件夹?而不管脚本运行后新生成的这种文件夹?
若是这上意思,去掉While循环就可以了
发表于 2012-4-2 21:37:45 | 显示全部楼层
本帖最后由 apoorman1986 于 2012-4-2 21:39 编辑

回复 10# happytc

去掉while
还有重命名dirmove你写错了,我修正了一下!
发表于 2012-4-2 21:47:52 | 显示全部楼层
本帖最后由 happytc 于 2012-4-2 21:49 编辑
回复  happytc

去掉while
还有重命名dirmove你写错了,我修正了一下!
apoorman1986 发表于 2012-4-2 21:37


呵,没有错,那是用作新生了象这样的文件夹名时修改用的,你可以试试脚本运行后,再新建一个“imageXYZ"文件夹
若只是一次性运行脚本,当然得修改下循环变量了
 楼主| 发表于 2012-4-2 21:58:07 | 显示全部楼层
回复 10# happytc


    是这个意思,谢谢兄弟帮忙,多谢
 楼主| 发表于 2012-4-3 17:54:18 | 显示全部楼层
回复 6# happytc


    兄弟还是麻烦你了,在请您在帮个忙,您给的脚本是可行的,可以将以image开头的文件夹重命名,但是如果下次在生产image这样的文件夹呢,在运行此脚本可能就不行了,假如第一次将image命名为image1 (这个文件夹没有删除) ,但是在D盘又生成了新的image文件夹,可能在运行此脚本就不行 了,因为存在同名了,我不想覆盖掉,简单点说只要存在image这个文件夹就将重命名。
发表于 2012-4-4 15:22:47 | 显示全部楼层
回复  happytc


    兄弟还是麻烦你了,在请您在帮个忙,您给的脚本是可行的,可以将以image开头的文件 ...
asura 发表于 2012-4-3 17:54


我说老兄,你自己也写写嘛,这么简单的一点。
不过是先判断下已有文件夹名最后的数字,找到最大的,把6楼的$i初值变成这个最大值呀


#include <File.au3>
 
Local $i, $aDir, $sDir = "D:\", $iNumOri = 0, $iNum
$aDir = _FileListToArray($sDir, "image*", 2)
If IsArray($aDir) Then
        For $j = 1 to $aDir[0]
                $iNum = StringRegExpReplace($aDir[$j], "(^image.*?)(\d+)", "\2")
                $iNum = Number($iNum)
                If $iNum > $iNumOri Then $iNumOri = $iNum
        Next
        $i = $iNumOri + 1
Else
        $i = 1
EndIf
        
        
While True
        $aDir = _FileListToArray($sDir, "image*", 2)
        If IsArray($aDir) Then
                For $j = 1 To $aDir[0]
                        If Not StringRegExp($aDir[$j], "^image.*?\d$") Then
                                DirMove($sDir & $aDir[$j], $sDir & $aDir[$j] & $i, 1)
                                $i += 1
                        EndIf
                Next
        EndIf
        
        $aDir = 0
        Sleep(100)
WEnd

评分

参与人数 1金钱 +25 收起 理由
asura + 25 真的非常感谢!

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-19 07:45 , Processed in 0.234812 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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