遍历目录建立文件夹并移动文件。。
小弟急需这样一个脚本,大致思路如下,在一个目录下有N多子文件夹,1. 遍历该目录下的所有子目录,并在所有子目录下建立名为AA的文件夹(排除子目录下的BB文件夹,意思就是说BB文件夹下不需要建立AA文件夹)。
2.将所有子目录下的BB文件夹移动到(不是复制)刚建立的AA文件夹下。(保持BB文件夹目录结构)。
小弟弄了很久,没效果呀。
请各位帮帮忙呀。
付目录结构如下:
原目录:
├─001
│├─BB
│└─CC
├─002
│├─BB
│└─CC
├─....
│├─BB
│└─CC
└─100
├─BB
└─CC
使用AU3处理后的目录结构:
├─001
│├─AA
││└─BB
│└─CC
│ └─AA
├─002
│├─AA
││└─BB
│└─CC
│ └─AA
├─...
│├─AA
││└─BB
│└─CC
│ └─AA
└─100
├─AA
│└─BB
└─CC
└─AA
最好能加上注释呀,让小弟知道自己写的时候哪错了。
谢谢各位了。 你发代码,别人给你修改多快,如果只是2级目录的话是比较简单的 本帖最后由 netegg 于 2011-5-7 03:12 编辑
楼主那意思还不如不意思,看得糊里糊涂的,怎么叫排除,排除了之后怎么又出来保持目录结构了
看楼主下面的图示,是不是要把bb文件整个挪到一个新建的aa文件夹下,然后原来的父文件夹中再创建个aa文件夹,然后是什么就不知道了 源码加描述,一般会容易搞一些。。。 同意楼上的{:face (332):} 因为该目录下有很多子文件夹,我是想在所有子文件夹下创建AA文件夹,然后把BB里的文件和文件夹移动到刚创建的AA文件夹里,但是BB里不能有AA文件夹,不然会出错的,
我原来是用批处理来弄的,批处理可以实现这个,但是后面还有很多操作批处理实现不了,所以现在打算用AU3来操作。
批处理代码如下:
@echooff
(for /f "delims=" %%i in ('dir /b /ad /s^|findstr /v /i /c:"BB"')do (
md ""%%i"\AA"&xcopy /e /y /h ""%%i"\BB\*" ""%%i"\AA\BB\*"
rd/s /q ""%%i"\BB"
))>nul 2>nul
pause
因为AU3代码写得太乱,和基本实现不了,所以就不发了,还请大家帮帮,忙。 本帖最后由 netegg 于 2011-5-7 19:26 编辑
bb 不在子文件夹内?还有,原来bb下的子文件夹中有没有aa,bb最后要不要留着,还有,按你的图示
├─AA
│└─BB
└─CC
└─AA
cc底下的aa是什么,和上面的那个aa有什么关系?_dirmove($dir)
Func _dirmove($current)
Local $search = FileFindFirstFile($current & "\*.*")
While 1
Dim $file = FileFindNextFile($search)
If @error Or StringLen($file) < 1Then ExitLoop
If StringInStr(FileGetAttrib($current & "\" & $file), "D") And ($file <> "." Or $file <> "..") and stringinstr($current & "\" & $file,'BB') Then
DirMove($current & "\" & $file, StringReplace($current & "\" & $file, 'BB', 'AA'))
EndIf
_dirmove($current & "\" & $file)
WEnd
EndFunc ;==>_dirmove不知道这样是不是你想要的
页:
[1]