如何对某一个文件夹下的所有文件批量重命名

时间:2023-01-15 12:31:57
我想对我的上千个文件按照统一的规则进行重命名.请问如何实现?

8 个解决方案

#1


用FSO应该可以吧,暂时没思路。。。

#2


可以呀,
方法一:
<%
Dim fso
   Set fso = CreateObject("Scripting.FileSystemObject")
  fso.MoveFile server.mappath("tupian.jpg"),server.mappath("图片.jpg")
   Set fso=Nothing
%>

方法二:
<%
Dim fso,f
   Set fso = CreateObject("Scripting.FileSystemObject")
        Set f = fso.GetFile(server.mappath("tupian.jpg"))
                f.name="图片.jpg"
        Set f=Nothing
   Set fso=Nothing
%>

#3


再搞过for each循环就行了

#4


楼上的,他的文件都不是有规律的名称

#5


这种重命名,要考虑到你在服务器的权限,事实上,最好的解决方法,是增加文件时就已经按规则命名再保存在目录中,而不是重命名,因为你的旧文件的名字是否有规律?没有规律的话,你也没办法用代码来修改的。

如果已经存在于目录中,而要统一更名,楼主不妨用一些程序或软件来实现,比如acdsee6.0或其它文件管理工具。再已经更名后,保证新加文件的规则统一。

#6


这样应该可以的,不过要自己调试一下
<%@ Language=VBScript %>
<%
    function bianli(path)
        dim fso            'fso对象
        dim objFolder      '文件夹对象
        dim objSubFolders  '子文件夹集合
        dim objSubFolder   '子文件夹对象
        dim objFiles       '文件集合
        dim objFile        '文件对象

        set fso=server.CreateObject("scripting.filesystemobject")    
        on error resume next
        set objFolder=fso.GetFolder(path)'创建文件夹对象
        set objSubFolders=objFolder.Subfolders'创建的子文件夹对象
        for each objSubFolder in objSubFolders 

            nowpath=path + "/" + objSubFolder.name
            Response.Write nowpath
            set objFiles=objSubFolder.Files
i=10
            for each objFile in objFiles
i=i+1
thefilename=nowpath&"/"&i&".txt"
'response.write(thefilename)
                Response.Write "<br>---"
                Response.Write objFile.name
filename=nowpath&"/"&objFile.name
'filename=path
fso.movefile filename,thefilename
response.write"<br>---"
response.write thefilename
            next
            Response.Write "<p>"
            bianli(nowpath)    '调用递归
        next 
        set objFolder=nothing
        set objSubFolders=nothing
        set fso=nothing
    end function
%>
<%
    bianli("d:/bianli") '调用bianli()函数,这里是遍历d:
%>

#7


不规则也可以的
用folder.files可以获取一个目录下的所有文件然后用循环进行重命名

<%
Dim fso,folders,files,f,i
   Set fso = server.CreateObject("Scripting.FileSystemObject")
        Set folders = fso.GetFolder(server.mappath("pic")) '获取pic文件夹对象
        set files=folder.files   '获取pic文件夹下所有文件
        i=1
        for each f in files
                f.name="图片"&i&".jpg"
                i=i+1
        next

   Set fso=Nothing
%>

#8


好了,谢谢名位.这就给分.

#1


用FSO应该可以吧,暂时没思路。。。

#2


可以呀,
方法一:
<%
Dim fso
   Set fso = CreateObject("Scripting.FileSystemObject")
  fso.MoveFile server.mappath("tupian.jpg"),server.mappath("图片.jpg")
   Set fso=Nothing
%>

方法二:
<%
Dim fso,f
   Set fso = CreateObject("Scripting.FileSystemObject")
        Set f = fso.GetFile(server.mappath("tupian.jpg"))
                f.name="图片.jpg"
        Set f=Nothing
   Set fso=Nothing
%>

#3


再搞过for each循环就行了

#4


楼上的,他的文件都不是有规律的名称

#5


这种重命名,要考虑到你在服务器的权限,事实上,最好的解决方法,是增加文件时就已经按规则命名再保存在目录中,而不是重命名,因为你的旧文件的名字是否有规律?没有规律的话,你也没办法用代码来修改的。

如果已经存在于目录中,而要统一更名,楼主不妨用一些程序或软件来实现,比如acdsee6.0或其它文件管理工具。再已经更名后,保证新加文件的规则统一。

#6


这样应该可以的,不过要自己调试一下
<%@ Language=VBScript %>
<%
    function bianli(path)
        dim fso            'fso对象
        dim objFolder      '文件夹对象
        dim objSubFolders  '子文件夹集合
        dim objSubFolder   '子文件夹对象
        dim objFiles       '文件集合
        dim objFile        '文件对象

        set fso=server.CreateObject("scripting.filesystemobject")    
        on error resume next
        set objFolder=fso.GetFolder(path)'创建文件夹对象
        set objSubFolders=objFolder.Subfolders'创建的子文件夹对象
        for each objSubFolder in objSubFolders 

            nowpath=path + "/" + objSubFolder.name
            Response.Write nowpath
            set objFiles=objSubFolder.Files
i=10
            for each objFile in objFiles
i=i+1
thefilename=nowpath&"/"&i&".txt"
'response.write(thefilename)
                Response.Write "<br>---"
                Response.Write objFile.name
filename=nowpath&"/"&objFile.name
'filename=path
fso.movefile filename,thefilename
response.write"<br>---"
response.write thefilename
            next
            Response.Write "<p>"
            bianli(nowpath)    '调用递归
        next 
        set objFolder=nothing
        set objSubFolders=nothing
        set fso=nothing
    end function
%>
<%
    bianli("d:/bianli") '调用bianli()函数,这里是遍历d:
%>

#7


不规则也可以的
用folder.files可以获取一个目录下的所有文件然后用循环进行重命名

<%
Dim fso,folders,files,f,i
   Set fso = server.CreateObject("Scripting.FileSystemObject")
        Set folders = fso.GetFolder(server.mappath("pic")) '获取pic文件夹对象
        set files=folder.files   '获取pic文件夹下所有文件
        i=1
        for each f in files
                f.name="图片"&i&".jpg"
                i=i+1
        next

   Set fso=Nothing
%>

#8


好了,谢谢名位.这就给分.