Board logo

标题: [文件操作] 批处理怎样根据文件名移动到对应的文件夹? [打印本页]

作者: 雨思99小米粥    时间: 2014-11-8 13:18     标题: 批处理怎样根据文件名移动到对应的文件夹?

1、D盘D:\workspace\SHome里面有很多文件,文件名为*1123*.xml其中星号为其他字符,文件区别就是看1123、1124、1125、1126等等
2、D:\workspace\UP  里面有很多文件夹,命名就是1123、1124、1125.。。。。。等等,。


怎么写一个批处理,把对应的文件复制到对应的文件夹中??
求大神帮忙!!
作者: DAIC    时间: 2014-11-8 13:22

回复 1# 雨思99小米粥


    数字两边的字符串长度有规律吗?数字两边是字母还是标点符号?
作者: 雨思99小米粥    时间: 2014-11-8 13:27

回复 2# DAIC

就像这样的~~~
文件名的前面和后面有不同的关键字,可以放到两个文件夹里面,如果按前面的放就都按前面的,按后面的放就都按后面的放~~
作者: 雨思99小米粥    时间: 2014-11-8 13:31

文件名的前面和后面有不同的关键字,可以放到两个文件夹里面,如果按前面的放就都按前面的,按后面的放就都按后面的放~~


谢谢大神~~每天都有上千个文件得复制~~~烦死了!!
作者: 再世情緣    时间: 2014-11-8 19:34

本帖最后由 再世情緣 于 2014-11-9 14:28 编辑
  1. @echo off &color 0a &setlocal enabledelayedexpansion
  2. set "sp=D:\workspace\SHome"
  3. set "ip=D:\workspace\UP"
  4. for /f "delims=" %%a in ('dir /b /a -d /s "%sp%\*.xml" 2^>nul') do (
  5.   set "nm=%%~na" &&set "fm=!nm:*-=!" &&set "fm=!fm:~8,4!"
  6.   xcopy "%%~fa" "%ip%\!fm!\" /C /Y /F
  7. )
  8. pause.
复制代码

作者: DAIC    时间: 2014-11-8 21:40

回复 5# 再世情緣


    楼主说按照前面那里判断也可以,所以 set "fm=!nm:*-=!" 这个应该可以省掉,直接截取就行了。
作者: DAIC    时间: 2014-11-8 21:42

回复 5# 再世情緣


    还有就是,第三行是不是少了个双引号。
作者: 再世情緣    时间: 2014-11-9 14:27

回复 7# DAIC


    额。。。确实后面少了半个。。。谢谢提醒
作者: 雨思99小米粥    时间: 2014-11-10 09:00

回复 5# 再世情緣

谢谢大神!!!我赶紧去试试~~
作者: 雨思99小米粥    时间: 2014-11-10 09:00

回复 6# DAIC


    同样谢谢您~~
作者: 雨思99小米粥    时间: 2014-11-10 09:01

回复 8# 再世情緣

谢谢~~~~~
作者: bajunshan    时间: 2014-11-20 09:41

学习了 我也遇到同样的问题




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2