Script to copy URL link to multiple computers

I am creating a script to copy a URL shortcut to about 50 pcs, I would keep the list names in a txt file -->  "CopyFilesPcList.txt"

I get an error
LINE 15..... Unterminated string constant
Const ComputersList = "C:\sysadmin\CopyFilesPcList.txt"
Const SourceFile = "C:\sysadmin\Isolations.url"
Const TargetFolder = "C:sysadmin\"
Const ReportFile = "C:\sysadmin\CopyFilesLog.txt"
 
Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objFile : Set objFile = objFSO.CreateTextFile (ReportFile)
arrComputers = Split(objFSO.OpenTextFile(ComputersList).ReadAll, vbNewLine)
 
For Each PC in arrComputers
  objFile.WriteLine "Attempting copy to " & PC
  On Error Resume Next
  objFSO.CopyFile SourceFile, "\\" & PC & "\" & Replace(TargetFolder, ":\","$\")
  If Err.Number <> 0 Then
    objFile.WriteLine vbTab & "Failed to copy to " & PC"
  Else
    objFile.WriteLine vbTab & "File successfully copied to " & PC
  End If
  On Error Goto 0
Next
 
objFile.Close

Open in new window

epicazoAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
RobSampsonConnect With a Mentor Commented:
Hi, do you know if the PC is actually on?

Try this. I have added a Ping function.

Oh, and you also needed the trailing slash on the TargetFolder.

Regards,

Rob.
Const ComputersList = "C:\sysadmin\CopyFilesComputers.txt"
Const SourceFile = "C:\sysadmin\Isolations.url"
Const TargetFolder = "C:\Documents and Settings\All Users\Desktop\"
Const ReportFile = "C:\sysadmin\CopyFilesLog.txt"

If Right(TargetFolder, 1) <> "\" Then TargetFolder = TargetFolder & "\"	
Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objFile : Set objFile = objFSO.CreateTextFile (ReportFile)
arrComputers = Split(objFSO.OpenTextFile(ComputersList).ReadAll, vbNewLine)
 
For Each PC in arrComputers
	If Trim(PC) <> "" Then
		If Ping(PC) = True Then
			objFile.WriteLine "Attempting copy to " & PC
			On Error Resume Next
			objFSO.CopyFile SourceFile, "\\" & PC & "\" & Replace(TargetFolder, ":\","$\")
			If Err.Number <> 0 Then
				objFile.WriteLine vbTab & "Failed to copy to \\"  & PC & "\" & Replace(TargetFolder, ":\","$\")
			Else
				objFile.WriteLine vbTab & "File successfully copied to " & PC & "\" & Replace(TargetFolder, ":\","$\")
			End If
			Err.Clear
			On Error Goto 0
		Else
			objFile.WriteLine vbTab & PC & " is offline"
		End If
	End If
Next
 
objFile.Close

Function Ping(strComputer)
	Dim objShell, boolCode
	Set objShell = CreateObject("WScript.Shell")
	boolCode = objShell.Run("Ping -n 1 -w 300 " & strComputer, 0, True)
	If boolCode = 0 Then
		Ping = True
	Else
		Ping = False
	End If
End Function

Open in new window

0
 
Cristi_EConnect With a Mentor Commented:
Hi epicazo,
Try to replace the line 15 with this one:
objFile.WriteLine vbTab & "Failed to copy to PC"
and line 17 with this one:
objFile.WriteLine vbTab & "File successfully copied to PC"
I don't see any PC variable so you can treat it as text.


I hope it will help!
All the best!
0
 
Cristi_ECommented:
Now i saw it on line 10 !!!!!!!
So you just need to change the line 15 with this one:
    objFile.WriteLine vbTab & "Failed to copy to " & PC

Thanks!
0
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
TheGorbyCommented:
FYI anytime you get that 'Unterminated string constant ' error, it usually means you've got an extra or missing quote mark on one of your strings somewhere.
0
 
RobSampsonCommented:
Cristi_E is right, you just had an extra quote on the end of line 15.   Removing that will solve your problem.

FYI, you're also missing a slash in the target folder.  This line
Const TargetFolder = "C:sysadmin\"

should be
Const TargetFolder = "C:\sysadmin\"

Regards,

Rob.
0
 
epicazoAuthor Commented:
I made the corrections, but for some reason I get an error in my log

Attempting copy to thebest1
      Failed to copy to \\thebest1\C$\Documents and Settings\All Users\Desktop

I do have access to the computer when I type "\\thebest1\C$\Documents and Settings\All Users\Desktop"

Here is my updated code
Const ComputersList = "C:\sysadmin\CopyFilesComputers.txt"
Const SourceFile = "C:\sysadmin\Isolations.url"
Const TargetFolder = "C$\Documents and Settings\All Users\Desktop"
Const ReportFile = "C:\sysadmin\CopyFilesLog.txt"
 
Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objFile : Set objFile = objFSO.CreateTextFile (ReportFile)
arrComputers = Split(objFSO.OpenTextFile(ComputersList).ReadAll, vbNewLine)
 
For Each PC in arrComputers
  objFile.WriteLine "Attempting copy to " & PC
  On Error Resume Next
  objFSO.CopyFile SourceFile, "\\" & PC & "\" & Replace(TargetFolder, ":\","$\")
  If Err.Number <> 0 Then
    objFile.WriteLine vbTab & "Failed to copy to \\"  & PC & "\" & Replace(TargetFolder, ":\","$\")
  Else
    objFile.WriteLine vbTab & "File successfully copied to " & PC & "\" & Replace(TargetFolder, ":\","$\")
  End If
  On Error Goto 0
Next
 
objFile.Close

Open in new window

0
 
Cristi_ECommented:
It would be useful to see the error number and description.
Just temporary replace the line 15 with this one and paste back the result:
    objFile.WriteLine vbTab & "Failed to copy to \\"  & PC & "\" & Replace(TargetFolder, ":\","$\") & " --> Number: " & Err.Number & ", Description: " & Err.Description

0
 
epicazoAuthor Commented:
hmmm?    what is strange is that I am able to copy/past into that folder..

here is the error:
--> Number: 70, Description: Permission denied
0
 
epicazoAuthor Commented:
thank you all for yor help.  I split the points
0
All Courses

From novice to tech pro — start learning today.