Ich muss FTP eine lokale Datei an Mainframe und haben das folgende Skript geschrieben, um eine lokale Batch-Textdatei mit Streamwriter erstellen und verwenden Sie diese Datei mit dem FTP -s: Befehl zum Ausführen.VB FTP-Code funktioniert in Debug (F10) aber nicht beim Ausführen oder F5
Hier ist der Code.
Shared Sub TestFTP()
' BP DEFINED INPUTS ANDF OUTPUTS
'Inputs
Dim hostname As String
Dim username As String
Dim password As String
Dim mainfile As String
Dim localfile As String
'Outputs
Dim success As Boolean
Dim message As String
'-------------
'Test DATA
'-------------
hostname = "XXIBM2"
username = "USER1"
password = "XXX1234"
mainfile = "XXTSO.USER1.TEST2"
localfile = "D:\TestFTP.txt"
'=============================BP Code========================
Try
Dim localPath As String = "C:\BPFTP"
Dim isExists As Boolean = System.IO.Directory.Exists(localPath)
If (isExists = False) Then
System.IO.Directory.CreateDirectory(localPath)
End If
' Open StreamWriter And create batch file
Using writer As StreamWriter = New StreamWriter(localPath + "\\FTP.txt")
writer.WriteLine("open " + hostname)
writer.WriteLine(username)
writer.WriteLine(password)
writer.WriteLine("put " + localfile + " '" + mainfile + "'")
writer.WriteLine("bye")
writer.WriteLine("exit")
End Using
' Perform FTP
Interaction.Shell("ftp -n -s:C:\BPFTP\FTP.txt")
' Delete batch file
System.IO.File.Delete("C:\\BPFTP\\FTP.txt")
success = True
Catch e As Exception
success = False
message = e.Message
End Try
End Sub
Wenn ich den Code mit F5 ausführen, wird die Datei nicht auf dem Mainframe angezeigt.
Wenn ich einen Breakpoing bei Shell-Befehl festlegen und den Code (f5) hier und dann F5 bis zum Ende ausführen, wird die Datei nicht FTPd an den Mainframe.
JEDOCH.
Wenn ich den Code auf den Haltepunkt ausführen und dann einfach die Shell-Befehlszeile mit F10 "übergehen", dann wird die Datei FTP erfolgreich auf dem Mainframe.
Nicht sicher, was Sie meinen, aber ich habe Administratorrechte. Jimmy Smith lieferte eine Lösung für das Problem unten. – RobT