![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 01:36 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 按文件名移动文件的批处理如何精简? |
| 可打印版本 727 / 0 |
| 第1楼 achu | 发表于 2010-07-29 10:17 |
| 新手上路 发帖 1 积分 1 | |
|
按文件名移动文件的批处理如何精简? 将同一目录下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 ] |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |