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

[文件操作] 批处理怎样把不同路径下相同名字的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下,如此类推.....

       非常感谢!
尊重知识

  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. )
复制代码

TOP

怎么运行后什么都没有呢?帮忙看下那里有问题。谢谢
尊重知识

TOP

  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. )
复制代码

TOP

不好意思,还是无法得到我需要的结果,那位高手帮帮忙啊。。。
尊重知识

TOP

就这一句应该就可以了吧.把批处理放到mater目录下面运行.
  1. for /d %%i in (*) do copy %%i\data\fileinfo.a d:\abc\%%i.a
复制代码
我是一个新手.看到此签名的请发点教程我!!谢谢!!

TOP

不好意思.看错了..原来只要留后面的数字..改改.
我是一个新手.看到此签名的请发点教程我!!谢谢!!

TOP

回复 5# xqsong


请问跟你需要的结果相差在何处?

TOP

两个程序都没有任何的COPY结果,好像是哪里出错了,帮忙调试下,谢谢。。。
尊重知识

TOP

本帖最后由 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. )
复制代码

TOP

感谢各位的帮忙,Thanks!!!以后多向各位学习
尊重知识

TOP

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

回复 4# awk


    请问这里面的for %%b in ("%%a\..\..") do 里面的..是什么意思啊
没有看出“..”作用        .. 在这里用意思啊?

TOP

回复 10# CrLf


      请问这里面的for %%b in ("%%a\..") do ( 里面的..是什么意思啊
没有看出“..”作用        .. 在这里用意思啊?

TOP

  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
复制代码

TOP

回复 12# zaixinxiangnian


父文件夹

TOP

返回列表