标题: [文件操作] 批处理怎样把不同路径下相同名字的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
- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('dir /s /b "D:\mater\*.a"') do (
- for %%b in ("%%a\..\..") do (
- set folderName=%%~nb
- set fileName=!folderName:cell=!
- )
- move "%%a" "D:\!fileName!.a"
- )
复制代码
作者: xqsong 时间: 2011-9-13 20:57
怎么运行后什么都没有呢?帮忙看下那里有问题。谢谢
作者: awk 时间: 2011-9-13 21:03
- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('dir /s /b "D:\mater\*.a"') do (
- for %%b in ("%%a\..\..") do (
- set folderName=%%~nb
- set fileName=!folderName:cell=!
- )
- move "%%a" "D:\ABC\!fileName!.a"
- )
复制代码
作者: xqsong 时间: 2011-9-14 07:26
不好意思,还是无法得到我需要的结果,那位高手帮帮忙啊。。。
作者: wangqi0077 时间: 2011-9-14 09:27
就这一句应该就可以了吧.把批处理放到mater目录下面运行.- 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:- for /r D:\mater\ %%a in (fileinfo.a) do (
- for %%b in ("%%a\..") do (
- for /f "delims=Cel" %%c in ("%%~nxb") do copy "%%a" "D:\ABC\%%c.a"
- )
- )
复制代码
作者: 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
- @echo off&SetLocal EnableDelayedExpansion
- For /f %%i in ('dir /s /b "D:\mater\*.a"') do (
- For /f "tokens=3 delims=\" %%j in ("%%~fi") do (
- Set name=%%j
- Set name=!name:cell=!
- Ren "%%~fi" "!name!%%~xi"
- Copy /y "%%~dpi!name!%%~xi" D:\ABC
- )
- )
- pause>nul
复制代码
作者: awk 时间: 2011-9-14 22:13
回复 12# zaixinxiangnian
父文件夹
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |