|
sunnywang
新手上路
积分 3
发帖 3
注册 2010-4-14
状态 离线
|
『楼 主』:
求助读文件取参数查找重命名脚本!
求助读文件取参数查找重命名脚本!
一个文件夹里有
number.txt
和
rec一个目录
number.txt 内容如下:
02868220941,1004-12671-02868220941
02886919508,1037-9397-02886919508
02826222956,1009-13713-02826222956
08162280663,1058-11678-08162280663
rec目录内容如下:
2009-04-13 19:30 221,244 130420_08262616293_42.wav
2009-04-13 19:30 219,708 135202_015036101152_38.wav
2009-04-13 19:30 219,964 142057_08522821265_38.wav
2009-04-13 19:30 219,964 180331_02866898024_40.wav
2009-04-13 19:30 218,940 183010_08322275007_40.wav
2009-04-13 19:30 220,732 183829_02424317312_6.wav
2009-04-13 19:30 220,732 185012_02485896095_35.wav
2009-04-13 19:30 220,220 185106_08313544365_41.wav
2009-04-13 19:30 219,964 190255_02425787217_1.wav
2009-04-13 19:30 220,732 194225_02785890254_9.wav
2009-04-13 19:30 2,861,372 200620_08162280663_41.wav
2009-04-13 19:30 219,964 200940_02783531322_10.wav
2009-04-13 19:30 2,961,980 201734_02826222956_37.wav
2009-04-13 19:30 220,732 201832_08162731618_38.wav
2009-04-13 19:30 2,246,460 202733_02886919508_39.wav
2009-04-13 19:30 220,220 203512_02883387126_40.wav
2009-04-13 19:30 2,901,564 203527_02868220941_33.wav
2009-04-13 19:30 219,452 203954_037166021059_10.wav
2009-04-13 19:30 220,220 204107_02838226987_38.wav
现要求顺序从number.txt 读取数据,先读第一行第一列如:02868220941
然后到rec目录中查找含有这个字串的所有文件,找出后copy到另外一个目录,再把文件名中含有02868220941的部分替换为第一行第二列的参数:1004-12671-02868220941。
执行完后再顺序开始第二行,知道最好,求助各位大侠帮助,这个脚本如何下手,万分感谢!
[ Last edited by sunnywang on 2010-4-15 at 13:22 ]
|
|
2010-4-15 13:20 |
|
|
Hanyeguxing
银牌会员
正在学习中的菜鸟...
积分 1039
发帖 897
注册 2009-3-1 来自 在地狱中仰望天堂
状态 离线
|
『第
2 楼』:
使用for /f以英文逗号解析文件number.txt,第一列为%%a,第二列为%%b,执行set "%%a=%%b"全部定义为变量。
然后结合dir使用for /f解析,_也作为分隔符,例如204107_02838226987_38.wav分隔后,直接把02838226987赋给变量%%j,前面的给%%i,后面的给%%k。接着使用if defined %%j判断%%j是否被定义,如果定义则执行copy,copy时目标文件直接使用%%i_!%%j!_%%k。
|
批处理之家 http://bbs.bathome.net/forum-5-1.html |
|
2010-4-15 13:41 |
|
|
sunnywang
新手上路
积分 3
发帖 3
注册 2010-4-14
状态 离线
|
『第
3 楼』:
非常感谢!
在下生手,能否给个范例!谢谢!
|
|
2010-4-15 13:46 |
|
|
Hanyeguxing
银牌会员
正在学习中的菜鸟...
积分 1039
发帖 897
注册 2009-3-1 来自 在地狱中仰望天堂
状态 离线
|
『第
4 楼』:
@echo off&setlocal enabledelayedexpansion
for /F "tokens=1,2 delims=," %%a in (number.txt) do set "%%a=%%b"
for /F "tokens=1-3 delims=_" %%a in ('dir \rec /b') do if defined %%b echo.copy rec\%%a_%%b_%%c D:\%%a_!%%b!_%%c
pause 运行后查看是否是要这样的,是则把echo.去掉,正式运行
|
批处理之家 http://bbs.bathome.net/forum-5-1.html |
|
2010-4-15 14:00 |
|
|
sunnywang
新手上路
积分 3
发帖 3
注册 2010-4-14
状态 离线
|
|
2010-4-15 15:59 |
|
|