[Info-vax] basic FTP client for OpenVMS from Windows.

Arne Vajhøj arne at vajhoej.dk
Fri Jan 15 13:14:59 EST 2021


On 1/14/2021 10:08 AM, Hein RMS van den Heuvel wrote:
> Hi folks, what is the current recommendation for an FTP client to be used on Windows exchanging files with OpenVMS (Itanium).
> 
> Personally I have an old WS_FTP Pro which suits me fine.
> And the FTP on my Windows 10 Pro laptop works fine also.
> So in my own office I am good, but not on my current customer site.
> 
> Their older Windows FTPs (here Windows Server 2016) do not work.
> You can connect, but they hang transferring.
> I believe this is because they do not support PASSIVE mode, not even with "quote pasv" which is accepted but has no useful effect.
> 
> I downloaded WinSCP 5.17.9  which seems fine at first as it displays my files, but when it comes to fetch a file barfs with a poorly constructed name on OpenVMS:
>>>> Failed to parse specification /DISK1:[xxx.USER.yyyyyy]/NAV_19.LOG
> file specification syntax error
> Obviously there are one or two well intended but erroneous forward slashes in that specification.
> 
> The customer is expected to configure FileZilla for me, which will be fine.
> 
> What other options do folks like?
> 
> Is there a simple commandline FTP.EXE?
> That has my preference over GUI tools.
> 
> Just fetching that image from Windows 10 and running it does not work.
> Hints to make that work?

You already got some answers. But here is my take.

First if GUI is desired then FileZilla is pretty good. Note though that
I have had problems VMS->Windows where it keeps version numbers.

The command line FTP client that comes with Windows is scriptable.

Example:

ftp -s:test.ftp 192.168.0.10

where test.ftp contains:

arne
secretpassword
get login.com login1.txt
quit

But most scripting languages will contain FTP capabilities.

Python:

from ftplib import FTP
vmssys = FTP('192.168.0.10')
vmssys.login('arne', 'secretpassword')
with open('login2.txt', 'w') as fp:
     vmssys.retrlines('RETR LOGIN.COM', lambda s: fp.write(s + '\n'))
vmssys.quit()

Groovy with Commons Net:

import org.apache.commons.net.ftp.FTPClient

FTPClient vmssys = new FTPClient()
vmssys.connect("192.168.0.10")
vmssys.login("arne", "secretpassword")
vmssys.enterLocalPassiveMode()
try (os = new FileOutputStream("login3.txt")) {
     vmssys.retrieveFile("LOGIN.COM", os)
}
vmssys.disconnect()

All 3 should use PASV.

I am sure PowerShell can do FTP - unfortunately I don't know PS.

Arne




More information about the Info-vax mailing list