Copy file from one server to another via asp vbs

Hello, I have a form that uses fso to pull text file names into a form on an ASP page.  I'd like the user to click an export button to send the chosen file over to another server.  I have an export.vbs script but I don't now how to pass the value from the asp page to the script.  Is there a way to do that?  Script below.  Hardcoded the script runs great.  I don't know how to get the value from the form into the script.  This is on an inhouse server.

strFilePath = "\\server1\jobs\source.txt" I'd like source.txt to be the value of my form.

Is there a way to do this?
The script runs from the asp page like this: 
<%if request.form("jobno")>"" then%>
<script>  
window.open("export.vbs")
</script>
<%end if%>
 
export.vbs below
 
Option Explicit
 
Dim objFSO, objFileCopy, objGuyFile, objFileDelete
Dim strFilePath, strDestination, WinHttpReq
Dim strFileText, strFileText2, strFileText3
dim fso
 
strFilePath = "\\server1\jobs\source.txt"
strDestination ="\\server2\export\destination"
 
 
Set fso = CreateObject("Scripting.FileSystemObject")
 
If fso.FileExists(strDestination) then
' Delete file if it alread exists in the destination.
fso.DeleteFile strDestination,True
wscript.echo "File deleted from Server 2"
else
wscript.echo "File wasn't deleted."
end if
 
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
 
if objFSO.fileexists(strfilePath) then
Set objFileCopy = objFSO.GetFile(strFilePath)
' copy the file to destination
 
objFileCopy.copy (strDestination)
 
WSCript.Echo "The new file has been Copied to " & strDestination
Wscript.Quit
else
wscript.echo "This didn't work. New file WAS NOT copied."
Wscript.Quit
end if
' End of Script

Open in new window

meldraperAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Mass Dot NetCommented:
I think you can do it all on one page.  I haven't tested this (very busy ATM), but give this a shot:
<%	
	Option Explicit
 
	Dim objFSO, objFileCopy, objGuyFile, objFileDelete
	Dim WinHttpReq, strFileText, strFileText2, strFileText3
	Dim strFilePath
 
	const strDestination = "\\server2\export\destination"
 
	
	if request.form("jobno")>"" then
		'// Get the path of the source file.
		strFilePath = Request("THE_FORM_FIELD_NAME_THAT_YOU_WANT_TO_USE")
 
		Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
		
		If objFSO.FileExists(strDestination) then
			' Delete file if it alread exists in the destination.
			Call objFSO.DeleteFile(strDestination, True)
			Call Response.Write("File deleted from Server 2.<br>" & vbNewLine)
		Else
			Call Response.Write("File wasn't deleted.<br>" & vbNewLine)
		End If
 
 
		if objFSO.fileexists(strfilePath) then
			' copy the file to destination
			Set objFileCopy = objFSO.GetFile(strFilePath)
			Call objFileCopy.Copy(strDestination)
			Set objFileCopy = Nothing
 
			Call Response.Write("The new file has been Copied to " & strDestination & ".<br>" & vbNewLine)
		else
			Call Response.Write("This didn't work. New file WAS NOT copied".<br>" & vbNewLine)
		end if
 
		Set objFSO = Nothing
	end if
%>

Open in new window

0
meldraperAuthor Commented:
No luck.  No error though, but the file did not get copied.  I don't really understand why either.  I made sure to response.write my paths to make sure they were correct and they are.  Thanks a million for this help, though.  On paper and in theory, it should work perfect.  I was pretty excited about it.
0
Mass Dot NetCommented:
Ok, I did a proper test.  Copy this new script to a new ASP page and run it.  I fudged the "jobno" form field -- all I want to do is make sure file copying works.  I tried it out and worked for me -- let me know if any other problems occur.
<%
	Option Explicit
 
	Dim strFilePath, objFSO, objSourceFile, sFileName, sTargetPath
 
	const C_S_DESTINATION_FOLDER = "\\server2\export\destination"
 
	
	if request.form("jobno")>"" then
		'// Get the path of the source file.
		strFilePath = Trim(Request("THE_FORM_FIELD_NAME_THAT_YOU_WANT_TO_USE") & "")
 
		Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
 
		If NOT objFSO.FolderExists(C_S_DESTINATION_FOLDER) Then
			Call Response.Write("ERROR: The target folder <u>" & Server.HTMLEncode(C_S_DESTINATION_FOLDER) & "</u> was not found.<br>" & vbNewLine)
		ElseIf NOT objFSO.FileExists(strFilePath) Then
			Call Response.Write("ERROR: The source file <u>" & Server.HTMLEncode(strFilePath) & "</u> was not found.<br>" & vbNewLine)
		Else
			Set objSourceFile = objFSO.GetFile(strFilePath)
 
			'// Get the name of the file you're copying over.
			sFileName = objFSO.GetFile(strFilePath).Name
 
			'// Create the fully-qualified path to the new file's location (if copying were to succeed).
			sTargetPath = C_S_DESTINATION_FOLDER & "\" & sFileName
 
			If objFSO.FileExists(sTargetPath) then
				'// Delete the target file, if it alread exists in the destination.
				Call objFSO.DeleteFile(sTargetPath, True)
				Call Response.Write("Target file already existed on Server 2 and was deleted.<br>" & vbNewLine)
			Else
				Call Response.Write("Target file does not yet exist on Server 2.<br>" & vbNewLine)
			End If
			
			'// Copy the file to the destination
			Call objSourceFile.Copy(sTargetPath)
			
			If objFSO.FileExists(sTargetPath) then
				'// Confirm that the file was copied properly.
				Call Response.Write("The new file has been Copied to " & sTargetPath & ".<br>" & vbNewLine)
			else
				Call Response.Write("The file copy didn't work, for some reason.<br>" & vbNewLine)
			end if
		End If
 
		Set objFSO = Nothing
	end if
%>
<form action="<%=Request.ServerVariables("SCRIPT_NAME")%>" method="post">
<input type="hidden" name="jobno" value="ASD">
<input type="input" name="THE_FORM_FIELD_NAME_THAT_YOU_WANT_TO_USE" value="">
<input type="submit">
</form>

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
JavaScript Best Practices

Save hours in development time and avoid common mistakes by learning the best practices to use for JavaScript.

meldraperAuthor Commented:
Hi Death, thanks again but no luck.  The error message says the target destination can't be found.  Just for fun I ran the vbs script by itself and it works fine.  Is there not a way to pass a value to that script and run it?  Thanks again.
0
Mass Dot NetCommented:
I don't understand: you said you got an error message, but that it ran fine.  What worked, what didn't, and what was the exact error message you got?
0
meldraperAuthor Commented:
No, my separate vbs script I have in my original post runs fine.  It runs fine separately, outside of the asp page.  What won't run is if that code is in the asp.
0
meldraperAuthor Commented:
Hey DTS, I'm going to do everything I can to make this form work.  The destination server is a linux server and very sensitive.  If you have any other ideas to get around the target destination error or why a standalone export.vbs script would run when called from the ASP but not inside of it, let me know.  Many many thanks for your help.
0
Mass Dot NetCommented:
It could be a permissions issue, but then I'd expect to see some kind of timeout error message.  But that's really as much as I can help out with, without being there in person.  Sorry, and good luck!
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
ASP

From novice to tech pro — start learning today.