利用VBScript批量复制、移动文件或文件夹

本文介绍了如何利用VBScript实现批量复制文件到指定目录及其子目录下,以及移动bin目录下所有文件夹中的.dll文件到新目录,同时保持原有目录结构。提供了CopyFile和MoveFile两个VBS脚本示例,并提到了DOS命令作为替代方案。

问题提出:

1.有一个文件需要复制到文件夹bin中所有目录下
2.需要复制出bin目录下所有文件夹中的*.dll文件到另外一个新的目录 ,并保持原有的目录结构

解决方案:

1.VBS中FileSystemObject.CopyFile实现,代码如下:

文件名:CopyFileToFolders.vbs

Dim srcFile
Dim dstFolder,dstFolderName

Dim objFSO
Dim objDstFolder

srcFile 
= InputBox("Input the File Full Name where you will copy from:","SourceFile","FullName")
dstFolder 
= InputBox("Input the Floder Full Path Where you will copy to:","DestinationFolder","FullPath"

Set objFSO    = CreateObject("Scripting.FileSystemObject")
Set objDstFolder = objFso.GetFolder(dstFolder)

For Each objSubfolder in objDstFolder.Subfolders
    
If Right(dstFolder,1)="" Then
        dstFolderName 
= dstFolder & objSubfolder.Name & ""
    
Else
        dstFolderName 
= dstFolder & "" & objSubfolder.Name & ""
    
End If
    objFSO.CopyFile srcFile,dstFolderName
Next
MsgBox "Copied Successful!",32,"Alert"

需要删除重新复制即可以用DOS命令:

del /s

 

2.1.VBS中FileSystemObject.MoveFile实现,代码如下:

文件名:MoveFolderFiles.vbs

Dim srcFolder,srcFile
Dim srcFileType
Dim dstFolder,dstFolderName

Dim objFSO
Dim objSrcFolder,objDstFolder
Dim objSubSrcFolders,objSubDstFolder


srcFolder 
= InputBox("Input the Floder Full Path where you will move from:","SourceFolder","FullPath")
srcFileType 
= InputBox("Input the Type of File which you will move:","SourceFileType","Postfix")
dstFolder 
= InputBox("Input the Floder Full Path Where you will move to:","DestinationFolder","FullPath")

Set objFSO    = CreateObject("Scripting.FileSystemObject")
Set objSrcFolder = objFso.GetFolder(srcFolder)
Set objDstFolder = objFso.GetFolder(dstFolder)

For Each objSubSrcFolders In objSrcFolder.SubFolders

    
If Right(srcFolder,1= "/" Then
        srcFile 
= srcFolder & objSubSrcFolders.Name & "/" & srcFileType 
    
Else
        srcFile 
= srcFolder & "/" & objSubSrcFolders.Name & "/" & srcFileType 
    
End If

    dstFolderName 
= dstFolder & "/" & objSubSrcFolders.Name & "/"
    
If Not objFSO.FolderExists(dstFolderName) Then
        objFSO.CreateFolder(dstFolderName)
    
End If
    objFSO.MoveFile srcFile,dstFolderName

Next

MsgBox "Moved Successful!",32,"Alert"

另:可以用DOS命令的xcopy /s + del /s 取代,但当所复制文件较大时,建议用VBS处理。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值