VBscript将文件从一个目录移动到另一个目录

VBscript将文件从一个目录移动到另一个目录,vbscript,Vbscript,我是VBscript新手,希望获得有关将特定数量的文件从一个目录移动到另一个目录的帮助 现在我有一组3个不同扩展名的文件(用于测试),如果源目录中正好有3个文件(不多也不少),我想移动所有文件。到目前为止,我的代码是: Set fso=CreateObject("Scripting.FileSystemObject") Set fldr=fso.getFolder("C:\folderA") for each file in fldr.files If fldr.files <

我是VBscript新手,希望获得有关将特定数量的文件从一个目录移动到另一个目录的帮助

现在我有一组3个不同扩展名的文件(用于测试),如果源目录中正好有3个文件(不多也不少),我想移动所有文件。到目前为止,我的代码是:

Set fso=CreateObject("Scripting.FileSystemObject")

Set fldr=fso.getFolder("C:\folderA")
for each file in fldr.files
    If fldr.files < 3 then
            msgbox("Need more files")
    Else
            fso.MoveFile "C:\folderA\*", "C:\folderB"
    End If
Set fso=CreateObject(“Scripting.FileSystemObject”)
设置fldr=fso.getFolder(“C:\folderA”)
对于fldr.files中的每个文件
如果fldr.files<3,则
msgbox(“需要更多文件”)
其他的
fso.MoveFile“C:\folderA\*”,“C:\folderB”
如果结束
任何帮助都将不胜感激。 谢谢大家

  • 使用
    fso.getFolder(“C:\folderA”).Files.Count
    获取
    C:\folderA
    中的文件
  • 在文件上循环之前执行此操作(移动文件)
  • 如果文件夹正好包含3个文件,请考虑移动(并重新创建)该文件夹
  • Set FSO=CreateObject(“Scripting.FileSystemObject”)
    设置fldr=FSO.GetFolder(“C:\FolderA”)
    设置Collec_Files=fldr.Files
    对于Collec_文件中的每个文件
    如果Collec_Files.count小于3,则
    msgbox(“需要更多文件”)
    其他的
    FSO.MoveFile“C:\FolderA\*”,“C:\FolderB”
    如果结束
    下一个
    
    我编写了以下代码,它工作得很好。它正在移动其他3个不同的文件夹,查看文件名并键入

    Dim fs
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(rootDir)
    For each file in f.files
        filename = folderName & file.name
    
        extFile = right(file.Name, 4) 'gets the file extension .xls
    
        strExport = left(file.Name,6)  
    
        strExportAPI = left(file.Name, 3)
    
        Do
    
            If (extFile <> ".vbs") Then 
            
                strsub = "KeyWord"
                index = InStr(file.name, strsub)
            
            End If  
                        
            If (strExportAPI = "Value") Then 
                fs.CopyFile file, dirKeyWord&file.name
                fs.MoveFile file, dirKeyWord&file.name
                Exit Do             
            End if
        
            If (index > 0) Then
                fs.CopyFile file, dirKeyWord&file.name
                fs.MoveFile file, dirKeyWord&file.name
                Exit Do
            End If
        
        
            Do while (strExport = "export")
                fs.MoveFile file, dirKey3&file.name
                Exit Do 
            Loop            
        Loop While False
    Next
    
    Dim fs
    设置fs=CreateObject(“Scripting.FileSystemObject”)
    Set f=fs.GetFolder(rootDir)
    对于f.files中的每个文件
    filename=folderName&file.name
    extFile=right(file.Name,4)”获取文件扩展名.xls
    strExport=left(file.Name,6)
    strExportAPI=left(file.Name,3)
    做
    如果(extFile“.vbs”),则
    strsub=“关键字”
    index=InStr(file.name,strsub)
    如果结束
    如果(strExportAPI=“Value”),则
    fs.CopyFile文件、dirKeyWord和file.name
    fs.MoveFile文件、dirKeyWord和file.name
    退出Do
    如果结束
    如果(索引>0),则
    fs.CopyFile文件、dirKeyWord和file.name
    fs.MoveFile文件、dirKeyWord和file.name
    退出Do
    如果结束
    Do while(strExport=“导出”)
    fs.MoveFile文件、dirKey3和file.name
    退出Do
    环
    错误时循环
    下一个
    

    Tai

    MoveFile或CopyFile无法处理路径超过260个字符的文件。即使是具有
    \\?\
    前缀的Windows特定UNC路径。最好使用像
    robocopy
    这样的外部工具来绕过这个问题。
    Dim fs
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(rootDir)
    For each file in f.files
        filename = folderName & file.name
    
        extFile = right(file.Name, 4) 'gets the file extension .xls
    
        strExport = left(file.Name,6)  
    
        strExportAPI = left(file.Name, 3)
    
        Do
    
            If (extFile <> ".vbs") Then 
            
                strsub = "KeyWord"
                index = InStr(file.name, strsub)
            
            End If  
                        
            If (strExportAPI = "Value") Then 
                fs.CopyFile file, dirKeyWord&file.name
                fs.MoveFile file, dirKeyWord&file.name
                Exit Do             
            End if
        
            If (index > 0) Then
                fs.CopyFile file, dirKeyWord&file.name
                fs.MoveFile file, dirKeyWord&file.name
                Exit Do
            End If
        
        
            Do while (strExport = "export")
                fs.MoveFile file, dirKey3&file.name
                Exit Do 
            Loop            
        Loop While False
    Next