Board logo

标题: [文件操作] 批处理怎样把不同路径下相同名字的TXT文件更名后放到指定文件夹? [打印本页]

作者: xqsong    时间: 2011-9-13 13:47     标题: 批处理怎样把不同路径下相同名字的TXT文件更名后放到指定文件夹?

请教各位高手:
   求教:需要把不同路径下相同名字的TXT文件更名相应的名字后放到指定文件夹的批处理
  如:
      D:\mater\cell1\data\fileinfo.a
         D:\mater\cell21\data\fileinfo.a
         D:\mater\cell35\data\fileinfo.a
         D:\mater\cell58\data\fileinfo.a
        .....
        很多的此类文件需要把Cell1\data下面的fileinfo.a更名为1.a并放置到D:\ABC下,把Cell21\data下面的fileinfo.a更名为21.a并放置D:\ABC下,如此类推.....

       非常感谢!
作者: awk    时间: 2011-9-13 19:10

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('dir /s /b "D:\mater\*.a"') do (
  4.     for %%b in ("%%a\..\..") do (
  5.         set folderName=%%~nb
  6.         set fileName=!folderName:cell=!
  7.     )
  8.     move "%%a" "D:\!fileName!.a"
  9. )
复制代码

作者: xqsong    时间: 2011-9-13 20:57

怎么运行后什么都没有呢?帮忙看下那里有问题。谢谢
作者: awk    时间: 2011-9-13 21:03

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('dir /s /b "D:\mater\*.a"') do (
  4.     for %%b in ("%%a\..\..") do (
  5.         set folderName=%%~nb
  6.         set fileName=!folderName:cell=!
  7.     )
  8.     move "%%a" "D:\ABC\!fileName!.a"
  9. )
复制代码

作者: xqsong    时间: 2011-9-14 07:26

不好意思,还是无法得到我需要的结果,那位高手帮帮忙啊。。。
作者: wangqi0077    时间: 2011-9-14 09:27

就这一句应该就可以了吧.把批处理放到mater目录下面运行.
  1. for /d %%i in (*) do copy %%i\data\fileinfo.a d:\abc\%%i.a
复制代码

作者: wangqi0077    时间: 2011-9-14 09:28

不好意思.看错了..原来只要留后面的数字..改改.
作者: awk    时间: 2011-9-14 09:51

回复 5# xqsong


请问跟你需要的结果相差在何处?
作者: xqsong    时间: 2011-9-14 10:40

两个程序都没有任何的COPY结果,好像是哪里出错了,帮忙调试下,谢谢。。。
作者: CrLf    时间: 2011-9-14 11:13

本帖最后由 CrLf 于 2011-9-14 12:42 编辑

来个另类的,只用 for:
  1. for /r D:\mater\ %%a in (fileinfo.a) do (
  2.   for %%b in ("%%a\..") do (
  3.      for /f "delims=Cel" %%c in ("%%~nxb") do copy "%%a" "D:\ABC\%%c.a"
  4.   )
  5. )
复制代码

作者: xqsong    时间: 2011-9-14 12:33

感谢各位的帮忙,Thanks!!!以后多向各位学习
作者: zaixinxiangnian    时间: 2011-9-14 18:21

本帖最后由 zaixinxiangnian 于 2011-9-14 18:40 编辑

回复 4# awk


    请问这里面的for %%b in ("%%a\..\..") do 里面的..是什么意思啊
没有看出“..”作用        .. 在这里用意思啊?
作者: zaixinxiangnian    时间: 2011-9-14 18:40

回复 10# CrLf


      请问这里面的for %%b in ("%%a\..") do ( 里面的..是什么意思啊
没有看出“..”作用        .. 在这里用意思啊?
作者: Hello123World    时间: 2011-9-14 19:02

  1. @echo off&SetLocal EnableDelayedExpansion
  2. For /f %%i in ('dir /s /b "D:\mater\*.a"') do (
  3. For /f "tokens=3 delims=\" %%j in ("%%~fi") do (
  4. Set name=%%j
  5. Set name=!name:cell=!
  6. Ren "%%~fi" "!name!%%~xi"
  7. Copy /y "%%~dpi!name!%%~xi" D:\ABC
  8. )
  9. )
  10. pause>nul
复制代码

作者: awk    时间: 2011-9-14 22:13

回复 12# zaixinxiangnian


父文件夹




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