2017-05-02 4 views
2

J'essaie d'obtenir ce script pour copier tous les fichiers commençant par "XX". Actuellement, il ne fait que copier un fichier.Fichiers de copie VBScript basés sur les lettres commençant

Dim objFSO, colFiles, objFile, strDestFolder, objNewestFile 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set colFiles = objFSO.GetFolder("C:\source") 
strDestFolder = "C:\destination\" 

For Each objFile In colFiles.Files 
    If Left(objFile.Name, 2) = "XX" Then 
    If objNewestFile = "" Then 
    Set objNewestFile = objFile 
    Else 
     If objNewestFile.DateLastModified < objFile.DateLastModified Then  
     Set objNewestFile = objFile 
     End If 
    End If 
End If 
Next 

If Not objNewestFile Is Nothing Then 
objFSO.CopyFile objNewestFile.Path,strDestFolder,True 
End If 

WScript.Echo "Copied."  
+0

Vous faites 'CopyFile' en dehors de votre boucle, il ne peut copier le dernier' objNewestFile' –

Répondre

2

Vous pouvez utiliser des caractères génériques * et ? dans l'argumentation [source] de la méthode OFS .CopyFile.

Ainsi, le code peut ressembler à:

Dim objFSO 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
objFSO.CopyFile "C:\source\XX*.*", "C:\destination\", True 
WScript.Echo "Copied." 
+1

Votre code fonctionne comme un charme. Merci à vous deux pour votre temps. – user3374569