中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 按文件名移动文件的批处理如何精简?
作者:
标题: 按文件名移动文件的批处理如何精简? 上一主题 | 下一主题
achu
新手上路





积分 1
发帖 1
注册 2010-6-26
状态 离线
『楼 主』:  按文件名移动文件的批处理如何精简?

将同一目录下EXCEL文件移动到相应文件夹,文件名为“x月份aa”、“第x季度bb”、“第X期CC”,根据命名相应移到文件夹下,对应关系见下表

文件名           文件夹          备注
n月份aa         xx\n月           aa与xx是对应关系
第n季度bb     yy\n季度        bb与yy是对应关系
第n期cc         zz\n期           cc与zz是对应关系

代码如下,经过一位大侠指点,已经精简了很多,感觉重复代码还是不少,不知道能否再精简.请大家多多指点!谢谢!
  
@echo off
setlocal enabledelayedexpansion
for /f %%i in ('dir /b *.xls')  do (
for /f "tokens=1,3,4 delims=_" %%a in ('dir /b %%i') do (
    set "t=%%c"
    set "t=!t:月份=:!"
   
    if /i not "!t!" equ "%%c" (
        for /f "tokens=1,2 delims=:." %%e in ("!t!") do (
            set str=%%f
            if "!str!"=="aa" set pname=xx
            if "!str!"=="bb" set pname=yy
            if "!str!"=="cc" set pname=zz
            if "!str!"=="dd" set pname=uu
            if "!str!"=="ee" set pname=vv        
            echo !pname!
        )
     )
     set "t=!t:季度=:!"
     if /i not "!t!" equ "%%c" (
         for /f "tokens=1,2 delims=:." %%e in ("!t!") do (
             set "tt=%%e"
             set "tt=!tt:~1,1!"
             set str=%%f
               if "!str!"=="aa" set pname=xx
            if "!str!"=="bb" set pname=yy
            if "!str!"=="cc" set pname=zz
            if "!str!"=="dd" set pname=uu
            if "!str!"=="ee" set pname=vv            
            echo !pname!
            
          )
      )
     set "t=!t:期=:!"
     if /i not "!t!" equ "%%c" (
         for /f "tokens=1,2 delims=第:." %%e in ("!t!") do (
             set str=%%f
               if "!str!"=="aa" set pname=xx
            if "!str!"=="bb" set pname=yy
            if "!str!"=="cc" set pname=zz
            if "!str!"=="dd" set pname=uu
            if "!str!"=="ee" set pname=vv            
            echo !pname!
            
         )
      )
)
)

[ Last edited by achu on 2010-7-29 at 10:18 ]

2010-7-29 10:17
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: