Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 349
  • Last Modified:

VBS script multiple copy of files to Mapped Drives

Hello,

I am currently trying to copy one file to multiple drives using a VBS script I have the code for copy to one drive but would like to make it copy file to multiple at the same time. The drive letters that I am using are P > X

Any help would be greatly appreciated as I seem to be having a issue with this.. Thanks

I have attached current code as a example
Const OverwriteExisting = True
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile "C:\test.exe" , "P:\", OverwriteExisting

Open in new window

0
ITCSHRPK
Asked:
ITCSHRPK
  • 3
  • 2
1 Solution
 
Shift-3Commented:
This should do it.


Const OverwriteExisting = True
 
For i = 80 To 88
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    objFSO.CopyFile "C:\test.exe" , Chr(i) & ":\", OverwriteExisting
Next

Open in new window

0
 
Shift-3Commented:
To elaborate, I used the Asc function to get the decimal ASCII value of the letters P and G, e.g.
WScript.Echo Asc("P")WScript.Echo Asc("X")

This returns values of 80 and 88.  (There are also tables available online where you can look these up.)

I then used a For...Next loop to iterate through the numbers 80-88.

The Chr function converts from the ASCII value back to the character.
0
 
ITCSHRPKAuthor Commented:
Thanks Sage..

If I wanted to change this up a bit and have it actually copy to a IP on a seperate Domain how would I go about that. This will end up being scheduled to run in the early hours of the morning.

The current process that I have is Map the drives - Copy the files - Remove the Drive mapping.. all items are completed via a VBS file.

Thanks
0
 
Shift-3Commented:
You would do better to skip mapping the drives and just copy the files using the UNC paths.

You could put the target paths in an array and then copy to each of them, as below.  Run the scheduled task under an account which has permission to write to the destinations.


Const OverwriteExisting = True
 
arrTargets = Array("\\192.168.100.100\share\","\\192.168.100.101\share\")
 
For Each strTarget in arrTargets
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    objFSO.CopyFile "C:\test.exe", strTarget, OverwriteExisting
Next

Open in new window

0
 
ITCSHRPKAuthor Commented:
Thanks again Sage.. Much appreciated will give that a shot and see how it goes..
0

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now