中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-05 12:41
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决]按要求实现批量改名(非一般的更名) 查看 6,131 回复 43
16 发表于 2007-07-31 14:48 ·  中国 辽宁 本溪 联通
银牌会员
★★★
积分 1,212
发帖 464
注册 2006-12-13 21:11
19年会员
UID 73417
性别 男
状态 离线
vbs写的,直接读取读取“list.xls”文件

on error resume next
set ws=createobject("wscript.shell")
set fso=createobject("scripting.filesystemobject")
path=ws.currentdirectory
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open(path & "\list.xls")
h=1
do until objExcel.Cells(h,1).Value=""
fso.getfile(objExcel.Cells(h,1).Value).name=objExcel.Cells(h,2).Value
if err then
objexcel.quit
err.clear
msgbox "出现错误,脚本退出!",16+4096,"提示"
wscript.quit
end if
h=h+1
loop
objExcel.Quit
msgbox "操作成功!",4096+48,"系统提示"
17 发表于 2007-07-31 14:57 ·  新加坡 Verizon通讯公司UUNet互联点
初级用户
积分 88
发帖 43
注册 2007-05-30 22:09
19年会员
UID 89807
性别 男
状态 离线
jmz573515辛苦
我试试看~~
18 发表于 2007-07-31 15:05 ·  新加坡 Verizon通讯公司UUNet互联点
初级用户
积分 88
发帖 43
注册 2007-05-30 22:09
19年会员
UID 89807
性别 男
状态 离线
提示:出现错误,脚本退出
是不是环境设置有什么要求或者文件摆放的位置有要求
19 发表于 2007-07-31 15:26 ·  中国 辽宁 本溪 联通
银牌会员
★★★
积分 1,212
发帖 464
注册 2006-12-13 21:11
19年会员
UID 73417
性别 男
状态 离线
list.xls,这个脚本,要改名的文件放在同一目录下。
20 发表于 2007-07-31 15:35 ·  新加坡 Verizon通讯公司UUNet互联点
初级用户
积分 88
发帖 43
注册 2007-05-30 22:09
19年会员
UID 89807
性别 男
状态 离线
ms这句执行有错误:fso.getfile(objExcel.Cells(h,1).Value).name=objExcel.Cells(h,2).Value
文件名没有给对还是要加上文件的扩张名
21 发表于 2007-07-31 15:44 ·  新加坡 Verizon通讯公司UUNet互联点
初级用户
积分 88
发帖 43
注册 2007-05-30 22:09
19年会员
UID 89807
性别 男
状态 离线
我这个脚本,list.xls,以及女人花.doc,文档.doc,记事本.doc
这几个文件我都放在同一目录下
但是运行就会报错
22 发表于 2007-07-31 15:44 ·  中国 辽宁 本溪 联通
银牌会员
★★★
积分 1,212
发帖 464
注册 2006-12-13 21:11
19年会员
UID 73417
性别 男
状态 离线
原来不就是带的扩展名吗?(我是按带扩展名处理的)
还有如果文件名已经改过1个或着几个,就会出现错误,总之文件名和EXCEL里的内容要完全一致。
23 发表于 2007-07-31 15:45 ·  新加坡 Verizon通讯公司UUNet互联点
初级用户
积分 88
发帖 43
注册 2007-05-30 22:09
19年会员
UID 89807
性别 男
状态 离线
会不会存在这个问题,
脚本和list.xls在同一目录下可能会出错?
24 发表于 2007-07-31 15:46 ·  中国 辽宁 本溪 联通
银牌会员
★★★
积分 1,212
发帖 464
注册 2006-12-13 21:11
19年会员
UID 73417
性别 男
状态 离线
不会,要求就是在同一目录下的
25 发表于 2007-07-31 15:48 ·  新加坡 Verizon通讯公司UUNet互联点
初级用户
积分 88
发帖 43
注册 2007-05-30 22:09
19年会员
UID 89807
性别 男
状态 离线
我现在设置的是显示文件的扩展名
实际情况是excel表格里面只给出文件的前缀,没有跟扩展名
这个怎么改呢?
26 发表于 2007-07-31 15:52 ·  新加坡 Verizon通讯公司UUNet互联点
初级用户
积分 88
发帖 43
注册 2007-05-30 22:09
19年会员
UID 89807
性别 男
状态 离线
同一目录下有其他文件不会发生冲突
如果我把excel文件下对应的都加上文件的扩展名没问题
可以修改
但一般都不给出扩展名
27 发表于 2007-07-31 15:57 ·  中国 辽宁 本溪 联通
银牌会员
★★★
积分 1,212
发帖 464
注册 2006-12-13 21:11
19年会员
UID 73417
性别 男
状态 离线

on error resume next
set ws=createobject("wscript.shell")
set fso=createobject("scripting.filesystemobject")
path=ws.currentdirectory
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open(path & "\list.xls")
h=1
do until objExcel.Cells(h,1).Value=""
fso.getfile(objExcel.Cells(h,1).Value & ".doc").name=objExcel.Cells(h,2).Value & ".doc"
if err then
objexcel.quit
err.clear
msgbox "出现错误,脚本退出!",16+4096,"提示"
wscript.quit
end if
h=h+1
loop
objExcel.Quit
msgbox "操作成功!",4096+48,"系统提示"
28 发表于 2007-07-31 16:07 ·  新加坡 Verizon通讯公司UUNet互联点
初级用户
积分 88
发帖 43
注册 2007-05-30 22:09
19年会员
UID 89807
性别 男
状态 离线
可以实现了
谢谢jmz573515
学到很多哈~~
起初只是想到用批处理来实现

顺便问一下:16+4096,"提示
以及:4096+48,"系统提示"
2个数字有什么特别的作用
一些代码的意思有点理解
其他继续学习ing

[ Last edited by frankkf on 2007-7-31 at 04:08 PM ]
29 发表于 2007-07-31 16:53 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
VbCritical 16 显示 Critical Message 图标。
VbExclamation 48 显示 Warning Message 图标。
vbSystemModal 4096 系统强制返回;全部应用程序都被挂起,直到用户对消息框作出响应才继续工作。 (你居然加这个=.=)
30 发表于 2007-07-31 17:01 ·  新加坡 Verizon通讯公司UUNet互联点
初级用户
积分 88
发帖 43
注册 2007-05-30 22:09
19年会员
UID 89807
性别 男
状态 离线
4096对系统有什么影响
如果加的不对或者有问题的话,会出现什么情况
论坛跳转: