请问个VBS更改文件名的问题~~~
答案:3 悬赏:0 手机版
解决时间 2021-02-18 02:22
- 提问者网友:雾里闻花香
- 2021-02-17 10:54
strComputer = "."Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")Set FileList = objWMIService.ExecQuery _ ("ASSOCIATORS OF {Win32_Directory.Name='e:\test'} Where " _ & "ResultClass = CIM_DataFile")For Each objFile In FileList for a = 01 to 22 strNewName = objFile.Drive & objFile.Path & a & "." & "txt" errResult = objFile.Rename(strNewName) Nextnext 这段代码 运行后提示找不着 出错在这行 errResult = objFile.Rename(strNewName) 把第2个for...next 去掉就可以用 可是那样就达不到目的了 我该怎么改 麻烦会的告诉下 谢谢了
最佳答案
- 五星知识达人网友:枭雄戏美人
- 2021-02-17 11:31
改文件名为何要用WMI用FileSystemObject不好吗?
全部回答
- 1楼网友:醉吻情书
- 2021-02-17 12:56
这都是微软官方的脚本范例去看看把 有具体的阐明 filesystemobject 我不晓得该怎么获取E:\test 里的所有文件名VBS我都没学过 只能根据范例脚本 稍微修改修改而已麻烦会的告诉下
- 2楼网友:不如潦草
- 2021-02-17 12:18
可以用 fso 组件。
function getscriptpath()
getscriptpath = left(wscript.scriptfullname, len(wscript.scriptfullname) - len(wscript.scriptname))
end function
class myfileoperator
private obj
private sub class_initialize()
set obj = createobject("scripting.filesystemobject")
end sub
private sub class_terminate()
set obj = nothing
end sub
' 枚举文件
public function listfiles()
dim path :path = getscriptpath()
dim objfolder :set objfolder = obj.getfolder(path)
dim files()
dim i :i = 0
for each objfile in objfolder.files
redim preserve files(i)
files(i) = objfile.name
i = i + 1
next
set objfolder = nothing
listfiles = files
end function
' 文件改名
public sub changefilename(source, dest)
call obj.movefile(source, dest)
end sub
end class
dim fop :set fop = new myfileoperator
dim files :files = fop.listfiles()
dim prefix :prefix = inputbox("请输入文件名前缀:")
dim i
for i = 0 to ubound(files)
call fop.changefilename(getscriptpath() & files(i), getscriptpath() & prefix & files(i))
next
msgbox "文件更名完毕!", mb_ok or mb_iconquestion, "提示:"
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯