|
tireless
银牌会员
积分 2025
发帖 1122
注册 2007-9-5
状态 离线
|
『第
31 楼』:
Re 30楼
你上传的附件中的 a.txt 里面每行末尾都有一个空格,如果实际是这样的话,把 23 楼的改成:
@echo off&setlocal enabledelayedexpansion
for /f "tokens=*" %%a in (a.txt) do (
set var=%%a
ren "!var:~-14,1!!var:~-12,3!!var:~-8,2!!var:~-5,4!?????.pdf" "!var:~,5!_!var:~-14,-1!_!var:~6,-15!.pdf"
) 另,4.2.8 显示输入单元PC 2x / 5x / 8x IPC 5.4.0.0 / IPC 5.5.0.0 9-082-42-8110,其中的 / 不能作为文件名,要手工把文本中的 / 替换掉,或者把代码中的 set var=%%a 改成 set var=%%a&set var=!var:/=/!
[ Last edited by tireless on 2009-4-30 at 12:07 ]
|
|
2009-4-30 11:58 |
|
|
netbenton
银牌会员
批处理编程迷
积分 1916
发帖 752
注册 2008-12-28 来自 广西
状态 离线
|
『第
32 楼』:
楼主上传的内容是想得到什么结果,最好能一并说明,才好解决
如果想改成这样一个文件名:
4.2.8 显示输入单元PC 2x / 5x / 8x IPC 5.4.0.0 / IPC 5.5.0.0 9-082-42-8110
那是不可能的。
|
精简
[你的+我的+他的]=>[大家的] 个人网志 |
|
2009-4-30 12:28 |
|
|
26933062
银牌会员
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第
33 楼』:
估计他的pdf文件名应该有 “10位数字相同加不同的5位字母” 的格式,
比如 1234567890abcd.pdf 和 1234567890efghi.pdf
那么用ren 数字????? 的方式应该是完不成的。
关键是有10万个,必须考虑效率问题啊。
另外楼主的txt文件内容和pdf文件是一一相对的吗?没有多余的行?
还有你们是怎么下载的附件啊?
楼主在11楼说问题解决,16楼又给出了新的样本?
新样本中需要按怎样的格式重命名文件呢?
|
致精致简! |
|
2009-4-30 13:44 |
|
|
irene6851
初级用户
积分 28
发帖 16
注册 2009-4-28
状态 离线
|
『第
34 楼』:
回复31-32楼的朋友们:今天是五一节, 没想到你们都在!真是很意外!
回复31楼tireless: 谢谢您的建议,“/”符号和空格可以手动去掉。现在您的两个方案, 我都保留,不断用新的内容会去测试。 十分感谢!
回复32楼netbenton: 测试过10楼您自己打包的文件,全部文件改名都OK。 但是, 测试我要的文件时, 出现问题。所以,我在30楼说,将我要的文件打包上传, 想请您和各位也可实际测试一下代码的效果。 符号/的问题,我会注意去掉的。谢谢哦!
回复32楼netbenton:
回复33楼26933062:
重新命名的文件名格式是: 数字.数字.数字_(下划线)一位数字-三位数字-两位数字-四位数字_(下划线)文字描述(只有中文;有中文和英文;有中文和英文和数字三种情况).pdf
例如: 0.0.0_1-234-56-7890_掌上明珠.pdf
txt文件内容和pdf文件是一一相对,没有多余的行,和上传打包里面的的a.txt是一样的。如下:
4.1.1 接通机器KF,FL,KL,VF 9-082-41-1071
4.1.1 启动机床PC22 9-082-41-1091
4.2.8 显示输入单元PC2x / 5x / 8x IPC5.4.0.0 / IPC5.5.0.0 9-082-42-8110
4.3.1 schuler机床数据采集系统BASIC 9-082-43-1002
4.7.2 PC22开始菜单 9-082-47-2011
第三行里面的“/”没有手动去掉, 是想保持一个“原生态”给各位参考一下。
11楼讲的是测试结果。目前测试过,达到想要效果的有23楼的代码,8楼的代码文件名的顺序有点不一样。从31楼开始的代码会稍后再测。
[ Last edited by irene6851 on 2009-4-30 at 23:35 ]
|
|
2009-4-30 22:51 |
|
|
tireless
银牌会员
积分 2025
发帖 1122
注册 2007-9-5
状态 离线
|
『第
35 楼』:
Re 34 楼
你上传的 1452.rar 里面的 a.txt 每行末尾确实有一个空格。
|
|
2009-4-30 23:03 |
|
|
irene6851
初级用户
积分 28
发帖 16
注册 2009-4-28
状态 离线
|
『第
36 楼』:
O...又查了一次, 的确有空格,不好意思!
删除那一句。
[ Last edited by irene6851 on 2009-4-30 at 23:24 ]
|
|
2009-4-30 23:18 |
|
|
freeants001
中级用户
积分 330
发帖 244
注册 2006-4-14 来自 湖北
状态 离线
|
『第
37 楼』:
1.复制下面代码,保存为re.js到a.txt所在目录运行.
2.运行生成的js.bat.
srcfl="a.txt"
fso=new ActiveXObject("scripting.filesystemobject")
sss=fso.opentextfile(srcfl,1).readall();
sss=sss.replace(/\\/g,"\");
sss=sss.replace(/\//g,"/");
sss=sss.replace(/:/g,":");
sss=sss.replace(/\*/g,"*");
sss=sss.replace(/</g,"〈");
sss=sss.replace(/>/g,"〉");
sss=sss.replace(/\|/g,"|");
sss=sss.replace(/^\s*(\d.\d.\d)\s*(\S.*\S)\s*(\d)\s*-\s*(\d\d\d)\s*-\s*(\d\d)\s*-\s*(\d\d\d\d)\s*$/gmi,"ren \"$3$4$5$6*.pdf\" \"$1_$3$4$5$6_$2.pdf\"\r\n")
fso.createtextfile("js.bat").write(sss) 注:
1.a.txt中的文件名可以是以下形式(处理后文件名为"4.1.1_9082411071_接通机器KF, FL, KL, VF.pdf")
" 4.1.1 接通机器KF, FL, KL, VF 9-082-41-1071 "
"4.1.1 接通机器KF, FL, KL, VF 9 - 082 - 41 - 1071 "
"4.1.1接通机器KF, FL, KL, VF 9-082- 41- 1071 "
"4.1.1接通机器KF, FL, KL, VF9-082-41 -1071 "
2.如果a.txt中含有\/:*?"<>等非法字符,脚本将自动替换成对应的中文符号
[ Last edited by freeants001 on 2009-5-1 at 01:45 ]
|
|
2009-5-1 00:14 |
|
|
26933062
银牌会员
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第
38 楼』:
就你给的样本文件,测试是成功的。但需删除每行末尾的空格。
txt中的 / 符号不是合法的文件名,代码中自动将其替换为#号。
还是那句话,所有pdf文件中,不能有10位数字顺序一样的情况
比如:1234567890abcde.pdf 和 1234567890efghi.pdf
数字部分完全一样,只有字母不同,就不行。
@echo off&setlocal enabledelayedexpansion
for /f "tokens=1* delims= " %%a in (a.txt) do (
for /f "tokens=1* delims=-" %%i in ("%%b") do (
set var=%%i&set "var2=%%j"&set "var=!var:/=#!"
set "num=!var:~-1!!var2:-=!"
ren "!num!?????.pdf" "%%a_!var:~-1!-!var2!_!var:~0,-2!.pdf"
))
pause
|
致精致简! |
|
2009-5-1 05:13 |
|
|
terse
银牌会员
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
『第
39 楼』:
这样呢?
@echo off&setlocal enabledelayedexpansion
for /f "tokens=1*" %%a in (a.txt) do (
set "str=%%b"
set "var=%%~nb"
set var=!var:~-13!
set "str=!str:~,-15!"
echo ren "!var:-=!?????.pdf" "%%a_!var! _!str:/=#!.pdf"
)
pause
|
简单!简单!再简单! |
|
2009-5-1 07:23 |
|