1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| On Error Resume Next
src = "\\SERVEUR_A\Dossier\Source"
dst = "\\SERVEUR_B\Dossier\Destination"
set fso = CreateObject("Scripting.FileSystemObject")
set oDst = fso.GetFolder(src)
For Each oFile In oDst.Files
newFileName = GetNewFileName(oFile.Name, dst)
oFile.Move(dst & "\" & newFileName)
Next
For Each oFolder In oDst.SubFolders
newFolderName = GetNewFolderName(oFolder.Name, dst)
If fso.FolderExists (dst & "\" & oFolder.Name) Then
Set oNet = CreateObject("WScript.Network")
oNet.MapNetworkDrive "S:", src
oNet.MapNetworkDrive "T:", dst
fso.MoveFolder ("S:\" & oFolder.Name), ("S:\" & newFolderName)
fso.CopyFolder src, dst, True
fso.DeleteFolder (src & "\*"), True
oNet.RemoveNetworkDrive "S:", True
oNet.RemoveNetworkDrive "T:", True
Else
fso.CopyFolder src, dst, True
fso.DeleteFolder (src & "\*"), True
End If
Next
wscript.quit
' Trouve un nom de fichier dans le dossier folder
Function GetNewFileName(originalName, folder)
base = fso.GetBaseName(originalName)
extension = fso.GetExtensionName(originalName)
If (extension <> "") Then extension = "." + extension
newName = fso.GetFileName(originalName)
cnt = 1
While (fso.FileExists(folder & "\" & newName) Or fso.FolderExists(folder & "\" & newName))
cnt = cnt + 1
newName = base & " (" & cnt & ")" & extension
Wend
GetNewFileName = newName
End Function
' Trouve un nom de dossier dans le dossier folder
Function GetNewFolderName(originalName, folder)
originalName = fso.GetFileName(originalName)
newName = originalName
cnt = 1
While (fso.FileExists(folder & "\" & newName) Or fso.FolderExists(folder & "\" & newName))
cnt = cnt + 1
newName = originalName & " (" & cnt & ")"
Wend
GetNewFolderName = newName
End Function |
Partager