[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]当所有文件夹相互匹配各自特定名称时进行归类

这次在实际操作中,遇到些不同的情况,故另开贴,请帮忙,谢谢

有以下文件夹(非空文件夹,里面有各种属性的文件):

home_xp_aser
home_xp_aser_0409

home_xp_basic
home_xp_basic_040c
home_xp_basic_tools

home_vista_pro
home_vista_pro_0404
home_vista_pro_oem

home_win7_cn_tim
home_win7_cn_tim_0804
home_win7_cn_tim_keys

整理后:

home_xp_aser
I_0409

home_xp_basic
I_040c
    I_tools

home_vista_pro
  I_0404
    I_oem

home_win7_cn_tim
  I_0804
    I_keys


(原先是想以截取掉后面5位(如:_040c)来进行配对,但现在多了些文件夹(如:tools、oem、keys),后面的字数不统一,有3位,4位,5位,不好截取

1:以上的040c、0804、0409代表语言,所以一定会是四位
2:home_  这个也是不变的,所有文件夹开头都会有
3:文件夹都是有“_”这个字符,不会有另类的特别符号,但是如果以“_”来做分隔,所有文件夹却不一定都一样的长度


请帮忙,或是提供个思路

[ 本帖最后由 pine 于 2009-10-24 22:01 编辑 ]
1

评分人数

    • Batcher: 感谢主动给标题标注[已解决]字样PB + 2

  1. @for /d %%i in (*) do for /d %%j in (%%i_*) do set n=%%j&call,move %%j %%i\%%n:%%i=l%%
复制代码
思路是,找到home_xp_aser后找到所有home_xp_aser_开头的文件夹,然后把home_xp_aser替换为l

注意
1.如果只操作home开头的文件夹,则可以把(*)替换为(home_*)
2.如果里面有系统文件啊,隐藏文件啊(我估计很有这个可能),那要偷懒的话就只能用xcopy了,最后rd一下

[ 本帖最后由 Seter 于 2009-10-24 18:47 编辑 ]

TOP

看来我真有得学了,你这个思路非常便捷,万分感谢!


个人看法,如果不要用CALL,相信应该效率更好点

[ 本帖最后由 pine 于 2009-10-24 21:59 编辑 ]

TOP

返回列表