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

[日期时间] [已解决]批处理如何把EXCEL文件根据文件名把文件剪切到不同的文件夹?

EXCEL文件的名字都以“-”加站名命名,譬如:“杭州TD4期新建工程单站点验证报告—自由孔.xls”,“杭州TD4期新建工程单站点验证报告—自来水厂.xls”,“杭州TD4期新建工程单站点验证报告—紫京山庄.xls”
每个站名归属的县区如下:
站名      县市
自由孔    萧山
自来水厂  余杭
紫京山庄  西湖
竹海水韵  余杭
朱穴      临安
朱家塔    萧山
周杨村    余杭
要解决的问题是,自由孔归属是萧山,则把“杭州TD4期新建工程单站点验证报告—自由孔.xls”剪切到“萧山”的文件夹中。
求解!
1

评分人数

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

  1. @echo off
  2. for /f "tokens=1,2" %%a in (' more +8 "%~f0" ') do (
  3.     if not exist %%b md %%b
  4.     move *—%%a.xls %%b
  5. )
  6. exit /b
  7. :: ------------------
  8. 自由孔    萧山
  9. 自来水厂  余杭
  10. 紫京山庄  西湖
  11. 竹海水韵  余杭
  12. 朱穴      临安
  13. 朱家塔    萧山
  14. 周杨村    余杭
复制代码

TOP

运行正常,非常感谢!

TOP

本帖最后由 flyhorse85 于 2011-8-4 13:26 编辑

如果所属区域的名字不只是2个字呢,譬如说有2,3,4个字的,该如何提取呢?
tokens=1,2就无法实现了。
还有就是excel文件放在很多不同的文件夹,而且深度不同,是否一定要全部剪切到同一个文件夹?然后再执行代码。

TOP

如果所属区域的名字不只是2个字呢
是指“站名”有空格,还是“区域”有空格?请像顶楼一样,举一些例子。

.
还有就是excel文件放在很多不同的文件夹
是在一个文件夹下的多个子文件夹,还是在不同的文件夹内?或者你希望搜索指定盘符,还是全盘搜索?

TOP

县市名如下,就是有多于2个字,或者一些特殊字符,该怎么处理?
站名      县市
自由孔    萧&山
自来水厂  余 杭
紫京山庄  西湖区

excel文件是在一个文件夹下的多个子文件夹中。

TOP

  1. @echo off
  2. for /f "tokens=1,*" %%a in (' more +8 "%~f0" ') do (
  3.     if not exist "%%b" md "%%b"
  4.     for /r %%i in (*—%%a.xls) do move "%%i" "%%b"
  5. )
  6. exit /b
  7. :: ------------------
  8. 自由孔    萧&山
  9. 自来水厂  余 杭
  10. 紫京山庄  西湖区
  11. 朱穴      临安
  12. 朱家塔    萧山
  13. 周杨村    余杭
复制代码
1

评分人数

TOP

in ( ' more +8 "%~f0" ')括号里面的不明白,请问楼主哪里有关于这里面的解释

TOP

in ( ' more +8 "%~f0" ')括号里面的不明白,请问楼主哪里有关于这里面的解释
zaixinxiangnian 发表于 2011-8-4 15:04



call /?
more /?

TOP

more是8行以后
call是调用,就像goto一样
"%~f0"就不知道是啥意思了

TOP

回复 10# flyhorse85


批处理文件自身的完整路径

TOP

返回列表