怎么用AU3重命名D盘文件夹名称?(已解决)
本帖最后由 asura 于 2012-4-2 22:00 编辑是这样的 若发现d盘存在image开头这样的文件夹,分别将他们重命名,即在他们名称后分别加1.2.3阿拉伯数字顺次排列下去,类似这样 若发现imagea imageb 则重命名为imagea1 imageb2 以前用批处理写过,但用AU3怎么写呢?请教各位大大。谢谢! 本帖最后由 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
回复 2# happytc
大哥这样不行吧。是存在image开头这一类文件夹重命名为后面分别加1 1楼的判断式怎么不行 楼主你不试怎么知道不可以 1楼的判断式怎么不行 楼主你不试怎么知道不可以 回复 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
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
回复 6# happytc
哥我错了,看样子,还是我没有表达清楚我要说的意思 ,已经修改内容了,请在仔细看下,谢谢 回复 6# happytc
用WHILE循环,脚本一直在运行,不会退出,刚测试了也不成功! 本帖最后由 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
DirMove($sDir&$aDir[$i],$sDir&"image"&$i,1)
Next
Else
MsgBox(0,"","没找到以image开头的文件夹")
EndIf 回复 7# asura
6楼的代码,那点不合你要求?
你检查已经存在的文件夹?而不管脚本运行后新生成的这种文件夹?
若是这上意思,去掉While循环就可以了 本帖最后由 apoorman1986 于 2012-4-2 21:39 编辑
{:face (303):}回复 10# happytc
去掉while
还有重命名dirmove你写错了,我修正了一下! 本帖最后由 happytc 于 2012-4-2 21:49 编辑
回复happytc
去掉while
还有重命名dirmove你写错了,我修正了一下!
apoorman1986 发表于 2012-4-2 21:37 http://www.autoitx.com/images/common/back.gif
呵,没有错,那是用作新生了象这样的文件夹名时修改用的,你可以试试脚本运行后,再新建一个“imageXYZ"文件夹
若只是一次性运行脚本,当然得修改下循环变量了 回复 10# happytc
是这个意思,谢谢兄弟帮忙,多谢 回复 6# happytc
兄弟还是麻烦你了,在请您在帮个忙,您给的脚本是可行的,可以将以image开头的文件夹重命名,但是如果下次在生产image这样的文件夹呢,在运行此脚本可能就不行了,假如第一次将image命名为image1 (这个文件夹没有删除) ,但是在D盘又生成了新的image文件夹,可能在运行此脚本就不行 了,因为存在同名了,我不想覆盖掉,简单点说只要存在image这个文件夹就将重命名。 回复happytc
兄弟还是麻烦你了,在请您在帮个忙,您给的脚本是可行的,可以将以image开头的文件 ...
asura 发表于 2012-4-3 17:54 http://www.autoitx.com/images/common/back.gif
我说老兄,你自己也写写嘛,这么简单的一点。
不过是先判断下已有文件夹名最后的数字,找到最大的,把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
$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
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]
2